我正在尝试让 rsnapshot 进行远程备份(通过 ssh)。我有一个有效的配置,我可以执行所有备份。
在我的配置文件中,我已启用sync_first=1
。据我了解,这意味着我必须始终先运行命令rsnapshot sync
来实际获取备份文件,然后运行命令rsnapshot hourly
来简单地进行符号链接和轮换备份。
现在的问题来了。我不确定这是否是设计使然,但我注意到每次我运行时rsnapshot sync
,每一个远程计算机上的文件无论自上次备份以来是否发生更改,都会再次备份。这意味着该rsnapshot sync
命令需要 1 小时以上。
这是设计的行为吗?
我应该sync
在跑步前每小时跑一次吗hourly/daily/weekly
?
答案1
是的,你应该sync
先运行。sync
同步到.sync
目录。hourly
然后旋转.sync
到hourly.0
。好消息是,rsnapshot sync
在中断后,你可以再次运行,rsnapshot sync
它会从中断的地方继续。
我的 crontab 中有这个:
# make backups every 2 hours - and skip hourly backups at night
0 0,6,8,10,12,14,16,18,20,22 * * * /opt/bin/rsnapshot sync && /opt/bin/rsnapshot hourly
# rotate a daily every night at 5
0 5 * * * /opt/bin/rsnapshot daily
请注意,在上述 crontab 中,如果rsnapshot sync
生成了警告,但仍能完成备份,它将返回错误代码 2。这意味着rsnapshot hourly
将无法运行。如果每次都发生这种情况,那么您就没有任何小时计划,也没有每日计划 - 只有目录.sync
。