[CentOS] rsync
Toby Bluhm
tkb at MidwestInstruments.com
Fri Mar 7 20:25:29 UTC 2008
Craig White wrote:
> On Fri, 2008-03-07 at 19:09 +0000, Anne Wilson wrote:
>
>> On Friday 07 March 2008 18:40:03 Craig White wrote:
>>
>>> I've gone over and over the man page and I don't get it and it's
>>> obviously a simple task
>>>
>>> I want to rsync a directory but only the pdf files...
>>>
>>> rsync -ncauv --include=*.pdf $WORKING $WEB_SERVER
>>> # sync's everything, I want to exclude stuff
>>>
>>> rsync -ncauv --filter='+ *.pdf' --filter='+ *.odt *.ott *.eps' \
>>> $WORKING $WEB_SERVER
>>> # sync's everything...does not seem to exclude anything
>>>
>>> rsync -ncauv --filter='. /root/scripts/qm_manual_filter' \
>>> $WORKING $WEB_SERVER
>>> # cat qm_manual_filter
>>> - *
>>> + *pdf
>>>
>>> excludes everything
>>>
>>> I am using -n for dry-run
>>> I definitely need recursive but -a option handles that
>>>
>>>
>> I don't know if it would work, but could you
>> use --exclude-from=/path/to/skiplist.txt to exclude everything then use your
>> filter line to add .pdfs back?
>>
>> I've not tried adding anything back after excluding. You can certainly use
>> wild cards in your skiplist, such as *.odt *.ott *.eps
>>
> ----
> doesn't work...
>
> (from script)
> rsync -ncauv --exclude-from='/root/scripts/qm_manual_filter' \
> --include='**/*.pdf' $WORKING $WEB_SERVER
>
> # ./sync-qm_manual.scr
> building file list ... done
>
> sent 29 bytes received 20 bytes 98.00 bytes/sec
> total size is 0 speedup is 0.00
>
> no files but changing qm_manual_filter to specifics...
>
> # cat qm_manual_filter
> #+ **/*pdf
> #- *
> - *.ods
> - *.odt
> - *.ott
> - *.eps
> - Build-PDF/
>
> did work, so I guess the simplest form is to just do this...
>
> # tail -n 1 script...
> rsync -ncauv \
> --filter='. /root/scripts/qm_manual_filter' \
> $WORKING $WEB_SERVER
>
> # cat qm_manual_filter
> + **/*pdf
> - *.ods
> - *.odt
> - *.ott
> - *.eps
> - Build-PDF/
>
> which ultimately does what I want, I think.
>
here's a stupid hack . . . .
cd /base/dir/of/pdfs
find . -type f -name '*.pdf' -print > list
for f in `cat list`; do
( test ! -d /dest/`dirname $f`` && mkdir -p /dest/`dirname $f`` )
rsync -av $f /dest/$f
done
--
Toby Bluhm
Alltech Medical Systems America, Inc.
30825 Aurora Road Suite 100
Solon Ohio 44139
440-424-2240
More information about the CentOS
mailing list