The pattern in you --include-from=FILE_CONTAINING_FILENAME_PATTERNS could be just a list of files that you can generate from your PhpScript. Get it now? -----Original Message----- From: ioannes [mailto:ioannes@xxxxxxxxxxxxxx] Sent: Tuesday, February 05, 2008 1:22 PM To: php-db@xxxxxxxxxxxxx Subject: Re: Copying an image from one server to another 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 -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php