i have a list of files relative to a docroot that need to be synchronized. example: pc/action/apocalyptica/wrapper_gslive.html pc/action/apocalyptica/wrapper_gslive_ice.html pc/action/apocalyptica/wrapper_ice.html pc/rpg/darkageofcamelot/buyit_unit.html pc/rpg/darkageofcamelot/buyit_unit_ice.html the actual docroot has 1538823 files. building the file list takes a very long time. i would like rsync to only consider the 4617 files listed in the file. i've tried: rsync -Re ssh --include-from=/tmp/paths.txt docroot ww1:/var/httpd/htdocs it says "skipping directory docroot" and nothing happens. i tried this: rsync -Re ssh `cat /tmp/paths.txt` ww1:/var/httpd/htdocs it returned: /usr/bin/rsync: Argument list too long. the only way i got it to work was to do this: rsync -ave ssh --include '*/' --include-from=/tmp/paths.txt --exclude '*' docroot ww1:/var/httpd/htdocs this takes a very very long time to run. is there a fast way to do this? -jsd-
On Fri, Aug 08, 2003 at 11:30:22AM -0700, Jon Drukman wrote:> i have a list of files relative to a docroot that need to be synchronized. > [...] is there a fast way to do this?The version is CVS has the new --files-from option. You'd do something like this: rsync -Re ssh --files-from=/tmp/paths.txt docroot/ ww1:/var/httpd/htdocs or this: rsync -Re ssh --files-from=/tmp/paths.txt docroot/ ww1:/var/httpd/htdocs/docroot Depending on whether you wanted the docroot dir in the destination path. I'd also suggest adding the -t option so that rsync knows what files have been synchronized (because it sets the modified-time to match). ..wayne..