Warum funktioniert diese rsnapshot-Funktion nicht?

4216
bstpierre

Rsnapshot übergibt Ausschlüsse direkt an rsync, das Verhalten von rsync scheint jedoch inkonsistent zu sein.

Ich habe meinen rsnapshot-Sicherungstest auf den folgenden Verzeichnisbaum vereinfacht (dieser Baum wird gesichert):

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 

Meine Konfigurationsdatei:

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 

Das Ergebnis:

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 

Meine Verwirrung rührt von der Tatsache her, dass das SKIPTHIS-Verzeichnis ausgeschlossen wird, wenn der rsync-Befehl, der von rsnapshot gesendet wird, kopiert wird. (Ich habe mit verschiedenen anderen SKIPTHIS-Mustern mit den gleichen Ergebnissen getestet.)

Irgendeine Idee, was los ist

2

1 Antwort auf die Frage

3
bstpierre

Wenn Sie die Ausführlichkeit von rsync nach oben ändern , zeigt sich das Problem:

rsync_short_args -avvv 

Ausgabe:

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

Beim Kopieren in die Shell verbrauchte die Shell die Anführungszeichen, und Rsync sagte:

[client] add_rule(-s SKIPTHIS/) 

Ändern der Ausschlussregel in meiner Konfigurationsdatei in:

exclude SKIPTHIS/** 

funktioniert.