简单的 rsync 增量备份,可为已删除的文件添加时间戳

Dus*_*yte 8 backup rsync

我使用rsync如下:

rsync -a --backup --suffix="."$(date +"%Y%m%d%H%M")源备份

整个文件夹的转储到该文件夹的备份,具有额外的功能,如果我修改了一些文件FOO,旧版本的FOO在备份将与日期后缀改名前的新复制到备份

这个简单的过程为我完成了这项工作,只是我希望使用日期后缀重命名已删除的文件,而不是从备份中删除。也就是说,如果FOO是从源中删除,然后重命名FOO备份的日期后缀。

我试图实现这一目标,但迄今为止没有成功。有任何想法吗?

小智 5

添加该--backup-dir选项应该可以满足您的需求:

--backup-dir=DIR 与 --backup 选项结合使用,这告诉 rsync 将所有备份存储在接收端的指定目录中。这可用于增量备份。您还可以使用 --suffix 选项指定备份后缀(否则指定目录中备份的文件将保留其原始文件名)。

例如

rsync -ab --backup-dir=versions --suffix="."$(date +"%Y%m%d%H%M") --delete /source/folder/ /destination/folder
Run Code Online (Sandbox Code Playgroud)

这将在 /destination/versions 创建文件的备份

来源: https: //linux.die.net/man/1/rsync


小智 1

对于增量 rsync 备份,使用 rsnapshot 工具。

示例 rsnapshot.conf

snapshot_root   /backup

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

cmd_rsnapshot_diff      /usr/bin/rsnapshot-diff

retain          daily   7
retain          weekly  4

verbose         2

loglevel        3

logfile /var/log/rsnapshot.log

lockfile        /var/run/rsnapshot.pid

backup  root@localhost:/etc/                   localhost/
backup  root@localhost:/home                   localhost/
backup  root@localhost:/var/www/               localhost/
Run Code Online (Sandbox Code Playgroud)

设置 Cronjobs 自动备份:

# m     h   dom mon dow command
#Run Rsnapshot At 02:00 Everyday
00      02      *       *       *       /usr/bin/rsnapshot daily
#Run Rsnapshot At 06:00 Every Sunday 
00      06      *       *       0       /usr/bin/rsnapshot weekly
Run Code Online (Sandbox Code Playgroud)