Re: Copying an image from one server to another

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I am and have been reading http://samba.org/ftp/rsync/rsync.html, which is one web page but 44 real pages. I see that FILE is a term used the rsynch script. Is this something output from the php script, and if so how is it channelled from one to the other?

I see the following:

- start quote -
****

**--exclude-from=FILE**
   This option is related to the *--exclude* option, but it specifies a
   FILE that contains exclude patterns (one per line). Blank lines in
   the file and lines starting with ';' or '#' are ignored. If /FILE/
is *-*, the list will be read from standard input.
**--include-from=FILE**

   This option is related to the *--include* option, but it specifies a
   FILE that contains include patterns (one per line). Blank lines in
   the file and lines starting with ';' or '#' are ignored. If /FILE/
is *-*, the list will be read from standard input.
**--files-from=FILE**
   Using this option allows you to specify the exact list of files to
   transfer (as read from the specified FILE or *-* for standard
   input). It also tweaks the default behavior of rsync to make
   transferring just the specified files and directories easier:

           * The *--relative* (*-R*) option is implied, which preserves
             the path information that is specified for each item in
             the file (use *--no-relative* or *--no-R* if you want to
             turn that off).
           * The *--dirs* (*-d*) option is implied, which will create
             directories specified in the list on the destination
             rather than noisily skipping them (use *--no-dirs* or
             *--no-d* if you want to turn that off).
           * The *--archive* (*-a*) option's behavior does not imply
             *--recursive* (*-r*), so specify it explicitly, if you
             want it.
           * These side-effects change the default state of rsync, so
             the position of the *--files-from* option on the
             command-line has no bearing on how other options are
             parsed (e.g. *-a* works the same before or after
             *--files-from*, as does *--no-R* and all other options).

   The filenames that are read from the FILE are all relative to the
   source dir -- any leading slashes are removed and no ".." references
   are allowed to go higher than the source dir. For example, take this
   command:

       |rsync -a --files-from=/tmp/foo /usr remote:/backup|

   If /tmp/foo contains the string "bin" (or even "/bin"), the /usr/bin
   directory will be created as /backup/bin on the remote host. If it
   contains "bin/" (note the trailing slash), the immediate contents of
   the directory would also be sent (without needing to be explicitly
   mentioned in the file -- this began in version 2.6.4). In both
   cases, if the *-r* option was enabled, that dir's entire hierarchy
   would also be transferred (keep in mind that *-r* needs to be
   specified explicitly with *--files-from*, since it is not implied by
   *-a*). Also note that the effect of the (enabled by default)
   *--relative* option is to duplicate only the path info that is read
   from the file -- it does not force the duplication of the
   source-spec path (/usr in this case).

   In addition, the *--files-from* file can be read from the remote
   host instead of the local host if you specify a "host:" in front of
   the file (the host must match one end of the transfer). As a
   short-cut, you can specify just a prefix of ":" to mean "use the
   remote end of the transfer". For example:

       |rsync -a --files-from=:/path/file-list src:/ /tmp/copy|

   This would copy all the files specified in the /path/file-list file
   that was located on the remote "src" host.

- end quote -

but I don't understand anything really from the synopsis:

- start quote -


   SYNOPSIS

Local:  rsync [OPTION...] SRC... [DEST]

Access via remote shell:
 Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
 Push: rsync [OPTION...] SRC... [USER@]HOST:DEST

Access via rsync daemon:
 Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
       rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
 Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
       rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

- end quote -

What is push and pull?

I am guessing I might achieve something by writing a rsynch script with lines like:

|rsync -avz foo:src/bar/ /data/tmp

save it as rsynch.txt and call it from a cron job. I don't understand how I build up a file list of the jpgs I want to copy. Patterns will not do it. I need to create an array from the database and get those files into the new site.

John
|

Mr Webber wrote:
FILE is there reference from the man page.  It contains the files to include
in the sync.

Have you read the man page for rsync?

-----Original Message-----
From: ioannes [mailto:ioannes@xxxxxxxxxxxxxx] Sent: Tuesday, February 05, 2008 9:48 AM
To: php-db@xxxxxxxxxxxxx
Subject: Re:  Copying an image from one server to another

I was unsure what was meant by FILE in php - is that the global? How do I reference a remote site's jpg file into FILE? Then how to I create the output from the php into stdout - using the return of a function? or print? Then how to launch rsynch - I understand how to call it from cron, as my web server kindly gives me an interface for this, but to create the file I would need to know what extension to save with the script name, and how to make it execute, ie the equivalent of <?php for rsynch scripts. Then how is FILE read by rsynch script. So lots more questions just to copy a publicly available image into my site. There has got to be an easier way.

John

Mr Webber wrote:
Note the rsync option:

--include-from=FILE
       This  option  is  related  to  the --include option, but it
specifies
a FILE that contains include patterns (one per line).  Blank
       lines in the file and lines starting with ';' or '#' are ignored.
If
FILE is -, the list will be read from standard input.

So, from a PhpScript, you manage the contents of "FILE" and then launch
rsync with the appropriate additional options.

-----Original Message-----
From: ioannes [mailto:ioannes@xxxxxxxxxxxxxx] Sent: Monday, February 04, 2008 12:59 PM
To: php-db@xxxxxxxxxxxxx
Subject: Re:  Copying an image from one server to another

Initially I could not find much on SCP and rsynch is about synchronising folders, but that is only part of the problem. I don't want files in the target location that are not referenced from the target database. I hold references like this

img[]=pic1.jpg&img[]=pic2.jpg

then I parse it out into the img array. So I want to do it from php programming and am on a shared server. I may have access to the terminal for linux/unix but I am not too strong in that area. So am I wrong to be still thinking of cURL?

John

Aleksandar Vojnovic wrote:
How about sending the file via SCP? (it would be a much more safer to transfer files)

-Aleksander

Chris wrote:
ioannes wrote:
I am trying to:

- check whether an image file exists on a server,
- check whether it does not exist on another server, and if not exists
- to copy from the first location to the second.

I am using cURL. First step to capture the image from the first server. When I return this image to the browser I get a lot of strange characters. So has this captured the image and what do I use next to upload to the second server?

I was trying to use file_exists and had problems referencing the file location as "http://wwww.mysite.com/pic.jpg";. But I know I can also look at using readfile() and file_put_contents(), $fp = fopen(), fputs(), fpassthru() etc. What is best way?
FTP.

There's no way fopen is going to be able to write to a remote url, that'd just be such a huge security issue it's not funny.



--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux