Почему это исключение rsnapshot не работает?

4071
bstpierre

Rsnapshot передает исключение непосредственно в rsync, но поведение rsync кажется непоследовательным.

Я упростил свой тест резервного копирования rsnapshot для следующего дерева каталогов (для этого дерева будет выполнено резервное копирование):

gorilla:~# find /tmp/snaptest -exec file {} \; /tmp/snaptest: directory /tmp/snaptest/SKIPTHIS: directory /tmp/snaptest/SKIPTHIS/xyz: directory /tmp/snaptest/SKIPTHIS/xyz/testing: ASCII text /tmp/snaptest/SKIPTHIS/bar: ASCII text /tmp/snaptest/SKIPTHIS/foo: ASCII text /tmp/snaptest/SKIPTHIS.txt: ASCII text 

Мой конфигурационный файл:

config_version 1.2 snapshot_root /tmp/backup-media no_create_root 1 cmd_cp /bin/cp cmd_rm /bin/rm cmd_rsync /usr/bin/rsync cmd_ssh /usr/bin/ssh cmd_logger /usr/bin/logger cmd_du /usr/bin/du interval hourly 6 interval daily 7 interval weekly 4 interval monthly 3 verbose 3 loglevel 3 logfile /media/maxtor-one-touch/rsnapshot.log lockfile /media/maxtor-one-touch/backups/.rsnapshot.pid rsync_short_args -a rsync_long_args --delete --numeric-ids --relative --delete-excluded exclude "SKIPTHIS/**" link_dest 1 backup /tmp/snaptest snaptest 

Результат:

gorilla:~# rsnapshot -c /tmp/snaptest.conf hourly echo 12638 > /media/maxtor-one-touch/backups/.rsnapshot.pid  mkdir -m 0755 -p /tmp/backup-media/hourly.0/  /usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \ --exclude="SKIPTHIS/**" /tmp/snaptest \ /tmp/backup-media/hourly.0/snaptest  touch /tmp/backup-media/hourly.0/  rm -f /media/maxtor-one-touch/backups/.rsnapshot.pid  gorilla:~# find /tmp/backup-media/ -exec file {} \; /tmp/backup-media/: directory /tmp/backup-media/hourly.0: directory /tmp/backup-media/hourly.0/snaptest: directory /tmp/backup-media/hourly.0/snaptest/tmp: sticky directory /tmp/backup-media/hourly.0/snaptest/tmp/snaptest: directory /tmp/backup-media/hourly.0/snaptest/tmp/snaptest/SKIPTHIS: directory /tmp/backup-media/hourly.0/snaptest/tmp/snaptest/SKIPTHIS/xyz: directory /tmp/backup-media/hourly.0/snaptest/tmp/snaptest/SKIPTHIS/xyz/testing: ASCII text /tmp/backup-media/hourly.0/snaptest/tmp/snaptest/SKIPTHIS/bar: ASCII text /tmp/backup-media/hourly.0/snaptest/tmp/snaptest/SKIPTHIS/foo: ASCII text /tmp/backup-media/hourly.0/snaptest/tmp/snaptest/SKIPTHIS.txt: ASCII text 

Моя путаница связана с тем, что если я скопирую и вставлю команду rsync, повторяемую с помощью rsnapshot, каталог SKIPTHIS будет исключен! (Я тестировал с другими шаблонами SKIPTHIS с теми же результатами.)

Есть идеи, что происходит?

2

1 ответ на вопрос

3
bstpierre

Turning rsync verbosity way up shows the problem:

rsync_short_args -avvv 

Output:

[client] add_rule(-s "SKIPTHIS/") 

Whereas when I was copy-pasting into the shell, the shell was consuming the quotes and rsync said:

[client] add_rule(-s SKIPTHIS/) 

Changing the exclude rule in my config file to:

exclude SKIPTHIS/** 

works.

Похожие вопросы