比较原始文件夹和备份文件夹,然后删除不存在的文件

比较原始文件夹和备份文件夹,然后删除不存在的文件

我使用的是 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

相关内容