我正在使用 rsync 命令进行增量备份,我的要求是对不同目录中与当前日期相同位置名称的修改文件进行增量备份,但是当我使用 rsync 时,它将增量备份存储在完整备份中,而不是在名称日期目录中。我正在使用以下命令进行增量备份。
rsync -av --backup --backup-dir=/mnt/`date +%Y.%m.%d.%T` /etc/ /mnt/
Run Code Online (Sandbox Code Playgroud)
取决于你所说的增量是什么意思。一个技巧是在 EXT4 驱动器上使用硬链接。这意味着如果文件不更改,它们将出现在每个快照中,但只会存在(并被复制到驱动器一次)。这是我以前使用过的脚本:
#!/bin/sh
NEW_FOLDER="$(date +%F\ %H-%M-%S)"
rsync --archive --human-readable --progress --link-dest /media/current "/etc/" "/media/incomplete/"
mv /media/incomplete /media/'$NEW_FOLDER'
rm -f /media/current
ln -s /media/'$NEW_FOLDER' /media/current
Run Code Online (Sandbox Code Playgroud)
通过使用不完整的文件夹,如果备份在中途停止(对于大型备份非常有用),下次尝试时它将再次启动。然后您可以浏览每个文件夹作为完整的增量备份。这是与 Apple Time Machine 类似的方法。
如果您不想使用硬链接来节省空间,并且不介意文件重复,请删除该--link-dest /media/current设置。
Rsync 默认情况下会执行增量备份,但可能不会得到您期望的结果。命令
rsync -av /etc/ /mnt/
Run Code Online (Sandbox Code Playgroud)
仅传输已更改的文件。为此,它比较/etc和的内容/tmp。如果您添加计算日期,例如/tmp/$(date),目标文件夹为空,因此所有文件将再次传输。
仅当您需要备份文件时,选项--backup和才有用,如果您使用选项 启动命令,这些文件将被删除。--backup-dirrsync--delete
概括
要创建真正的增量备份,您将需要另一个工具,例如。rsnapshot。