Re: Re: Transferring files between computers using php
| From: | Shawn McKenzie | Date: | Fri, 07 Mar 2008 05:05:59 +0000 |
| Subject: | Re: Re: Transferring files between computers using php | ||
| References: | 1 2 3 4 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-271115@lists.php.net to get a copy of this message | ||
Rahul wrote:
> Thank you all so much for replying... I guess I was very vague in
> describing the situation. I will write in detail:
>
> I have three computers A, B and C. To login to B and C I should use A
> because it has a SSH key. I don't have any other way of accessing these
> two computers. Now, if I need to transfer a file between B and C, I am
> unable to find a way that would work... because I don't know how to
> authenticate without SSH keys... I was gathering some data in B and C
> using PHP. Now, I need these two computers to coordinate a little and
> didn't want to use a server in between and so I was thinking of
> establishing a direct connection between them..
>
>
> Zareef Ahmed wrote:
>> On 3/7/08, Shawn McKenzie <nospam@mckenzies.net> wrote:
>>> Rahul wrote:
>>>> I have a small file to be transferred between two computers every few
>>>> seconds. I'm using unix with a bare bones version of php, i.e. just the
>>>> original thing that gets installed when I run "yum install php". As
>>> there is
>>>> no webserver on any of these machines, I was wondering if there is a
>>>> way
>>> to
>>>> transfer a small file between them and if there is, could someone be
>>> kind
>>>> enough to provide me with an example please?
>>>>
>>>> Thank You
>>>>
>>>>
>>> FYI... If you're using yum I assume it's a Linux machine (maybe Fedora)
>>> and not Unix.
>>
>>
>>
>> If you want to use rsync and scp in a cronjob (for continuous transfer
>> at a
>> predefined interval), you may need to set your server (read ssh) to
>> accept
>> connection without password.
>> Ref : http://linuxproblem.org/art_9.html
>>
>> BUT If you really want to do that from PHP, you can install a web
>> server and
>> enable http as your stream for opening files. (In php.ini)
>> You can read the file using fopen or any other file functions, then can
>> write that file to the server on which script will be running, then
>> you can
>> set this script as your cron job.
>>
>> For example :
>>
>>
>> $filecontents=file_get_contents("http://firstserver/file.txt");
>>
>> $fp=fopen("path to local file", "mode");
>>
>> Now use $fiiecontents to write the file using $fp resource.
>>
>> BUT remember, using rsync is always a better solution, and
>> file_get_contents
>> and file functions are resource hungry, specially they will consume more
>> memory of your system.
>>
>>
>>
>> --
>>> PHP General Mailing List (http://www.php.net/)
>>> To unsubscribe, visit: http://www.php.net/unsub.php
>>>
>>>
>>
If ssh keys are installed on the remote hosts then scp works
transparently and you just stick the scp in a cron job. Am I missing
something?
-Shawn