我使用的是 Raspbian jessie (ubuntu)。我制作了一个 .sh,它会备份所有内容(不包括 mnt、tmp、run、dev、boot 等)的 .img,并让其每周使用 crontab 运行一次。它会检查已修改的文件并仅复制这些文件。我发现这非常有用,因为无需每次都重新对所有内容进行大规模完整备份。这非常有效。.sh 包含以下命令:
sudo rsync -aAHvpE --delete-during --exclude-from=/etc/rsync-exclude.txt / /mnt/usb0/backup/partition2
然而,在检查备份后,我发现它仍然包含一个我已经在原始系统上删除的文件。例如,文件 /test.txt 已备份到 /mnt/usb0/backup/partition2/test.txt ,但是在删除原始文件并进行新备份后,它并没有在备份中消失。
现在我的问题是:有什么方法可以检查原始文件夹中不再存在的文件,然后也删除备份文件夹中的文件? (无需先删除所有内容,然后从头开始进行完整备份)。
答案1
您使用的命令--delete-during
将删除接收端的文件,/mnt/usb0/backup/partition2
但是请检查您的--exclude-from
文件中/etc/rsync-exclude.txt
是否包含该名称。test.txt
您还可以使用以下选项,
--delete-before receiver deletes before xfer, not during
--delete-during receiver deletes during the transfer
--delete-delay find deletions during, delete after
--delete-after receiver deletes after transfer, not during
--delete-excluded also delete excluded files from dest dirs