我已经实现了多服务器备份系统,运行非常有效。
我有一台带有大型磁盘阵列的备份服务器,每天晚上它都会运行 rsnapshot 来备份 LAN(linux/windows)上所有服务器的相关数据。通过常规 ssh 连接与服务器建立连接。
这是我的 rsnapshot.conf 的相关部分(简化部分):
...
backup user@server-one:/etc/ backup-server-one/
backup user@server-one:/opt/ backup-server-one/
backup user@server-two:/etc/ backup-server-two/
backup user@server-two:/var/ backup-server-two/
backup user@server-three:/etc/ backup-server-three/
backup user@server-three:/home/user/ backup-server-three/
...
到目前为止一切顺利。问题是,当由于某种原因一个备份失败时(通常是因为该服务器关闭...),整个 rsnapshot 进程都会终止,并且所有后续快照都不会执行...
问题是:即使出现错误,是否有可能说服 rsnapshot 继续进行下一个“备份”?
答案1
@MarcoS: 很好 ;-)
我给自己写了rsnapshot-包装器并为一个主机提供一个配置文件,因此即使一次 rsnapshot 运行失败,它也将继续下一次运行。
答案2
我确实为自己实施了一个解决方案......在子部分handle_rsync_error
我确实改变了
if (0 == $retval) { bail('retval == 0 in handle_rsync_error() ('.$$bp_ref{'src'}.')'); }
和
if (0 == $retval) {
print_err ("$config_vars{'cmd_rsync'} error 0 on $$bp_ref{'src'} (check host is up and accepting ssh connections...)", 2);
syslog_err("$config_vars{'cmd_rsync'} error 0 on $$bp_ref{'src'} (check host is up and accepting ssh connections...)");
}
现在正在测试,但很有信心... :-)