[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