我已经使用以下配置设置了 rsnapshot,它似乎运行良好。但是,如果我理解正确的话,在 rsnapshot 文档和其他教程中,添加这些选项后操作会更加可靠:
link_dest 1
sync_first 1
use_lazy_deletes 1
但是当我启用这些选项时,特别是 sync_first,它似乎无法正常运行。没有错误,但似乎什么也没发生(参见下面的最后一个代码块)。Configtest 成功成功。我怀疑我遗漏了有关如何使用 sync_first 的一些信息。首先我想知道这三个选项一起使用时是否确实有益(没有冲突),其次,在启用 sync_first 后,我必须在 cron 中调用 rsnapshot 的方式是否有区别?
这是在 Ubuntu 14.04 上安装的,带有 rsnapshot 1.3.1,并且 rsync 具有 link_dest 选项。感谢您对此的任何指导,官方文档有点枯燥。
会议
config_version 1.2
snapshot_root /srv/rsnapshot/
no_create_root 0
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 HoursAgo 6
retain DaysAgo 7
retain WeeksAgo 4
#retain monthly 3
verbose 5
loglevel 3
logfile /var/log/rsnapshot.log
lockfile /var/run/rsnapshot.pid
rsync_long_args --stats --delete --numeric-ids --relative --delete-excluded
ssh_args -p 22
# host.mydomain.net
backup [email protected]:/etc/ host.mydomain.net/
backup [email protected]:/srv/www/ host.mydomain.net/
backup_script /usr/bin/ssh [email protected] "rm -rf /var/local/mysqlbak/" unused/
backup_script /usr/bin/ssh [email protected] "/usr/local/bin/mysql_bak.sh" unused1/
backup [email protected]:/var/local/mysqlbak/ host.mydomain.net/mysql/
克罗恩
0 */4 * * * root /usr/bin/rsnapshot hourly 2>&1 | \/usr/local/bin/rsnapreport.pl | mail -s "Hourly Backup" [email protected]
30 3 * * * root /usr/bin/rsnapshot daily 2>&1 | \/usr/local/bin/rsnapreport.pl | mail -s "Daily Backup" [email protected]
0 3 * * 1 root /usr/bin/rsnapshot weekly 2>&1 | \/usr/local/bin/rsnapreport.pl | mail -s "Weekly Backup" [email protected]
启用所有三个额外选项的运行结果:
root@backup:~# rsnapshot HoursAgo
require Lchown
Lchown module loaded successfully
Setting locale to POSIX "C"
echo 3567 > /var/run/rsnapshot.pid
mv /srv/rsnapshot/HoursAgo.3/ /srv/rsnapshot/HoursAgo.4/
mv /srv/rsnapshot/HoursAgo.2/ /srv/rsnapshot/HoursAgo.3/
mv /srv/rsnapshot/HoursAgo.1/ /srv/rsnapshot/HoursAgo.2/
mv /srv/rsnapshot/HoursAgo.0/ /srv/rsnapshot/HoursAgo.1/
No directory to delete: /srv/rsnapshot/_delete.3567
rm -f /var/run/rsnapshot.pid
/usr/bin/logger -i -p user.info -t rsnapshot /usr/bin/rsnapshot HoursAgo: \
completed successfully
这是瞬间发生的,无需连接到远程,也没有时间检查更改的文件。
更新:我在 rsnapshot 的 Ubuntu 页面上找到了有关 sync_first 的一些其他信息。我编辑了我的 cron,在行rsnapshot sync &&
首添加了以下hourly
内容:
0 */4 * * * root /usr/bin/rsnapshot sync && /usr/bin/rsnapshot hourly 2>&1 | \/usr/local/bin/rsnapreport.pl | mail -s "Hourly Backup" [email protected]
当我手动运行它时,它似乎有效。
我仍然想知道:这三个额外的选项一起使用是否有优势?
我可能还会转储统计数据,以便在出现错误时只收到电子邮件。
答案1
您必须rsnapshot sync
先打电话再拨打rsnapshot <level>
。