我的 rsnapshot 冻结,没有错误

我的 rsnapshot 冻结,没有错误

我尝试制作备份系统。我尝试使用 rsnapshot。

描述:
带有 rsnapshot 的客户端将数据放入 sshfs 挂载文件夹(sftp 备份服务器)。我制作 ssh-key,挂载它,一切正常。

在 rsnapshot conf 中我启用了 link_dest=1,因为默认值 0 使得 rsnapshot 对 ssh 挂载文件夹上的硬链接感到困惑。

错误描述:
我使用 cron 使 rsnapshot 自动启动。几天后,我检查了我的文件夹,发现它们很小。(所有数据都是 4gb,但文件夹大约有 300mb、400mb)。

我检查了复制到 ssh 文件夹的情况。 cp data ssh_folder.一切顺利,速度也不是很慢:大约 30 分钟后,我在 ssh 文件夹中看到了 4gb。

好的。我使用详细文件手动启动了 rsnapshot。

rsnapshot -V hourly

唯一的错误是 chown 错误(使用 ssh 时不太容易)日志文件中也没有内容。只是某些文件冻结了。

这是第一个奇怪的想法。第二个是:我尝试进行增量备份,尽量减少与 ssh 同步的时间。但是当我检查我的新每小时目录时,我只看到部分数据,而不是新数据或指向 old_data 的链接。只是新文件夹中的相同文件。

非常感谢大家的任何建议。

UPD:没有大文件。这是一个网络服务器

UPD:使用 strace

select(5, [], [4], [], {tv_sec=60, tv_usec=0}) = 0 (Timeout)
select(5, [], [4], [], {tv_sec=60, tv_usec=0}) = 0 (Timeout)
select(5, [], [4], [], {tv_sec=60, tv_usec=0}) = 0 (Timeout)
select(5, [], [4], [], {tv_sec=60, tv_usec=0}) = 0 (Timeout)
select(5, [], [4], [], {tv_sec=60, tv_usec=0}) = 0 (Timeout)
select(5, [], [4], [], {tv_sec=60, tv_usec=0}) = 0 (Timeout)
select(5, [], [4], [], {tv_sec=60, tv_usec=0}) = 0 (Timeout)
select(5, [], [4], [], {tv_sec=60, tv_usec=0}) = 0 (Timeout)
select(5, [], [4], [], {tv_sec=60, tv_usec=0}) = 0 (Timeout)
select(5, [], [4], [], {tv_sec=60, tv_usec=0}) = 0 (Timeout)
select(5, [], [4], [], {tv_sec=60, tv_usec=0}) = 0 (Timeout)
select(5, [], [4], [], {tv_sec=60, tv_usec=0}) = 0 (Timeout)
select(5, [], [4], [], {tv_sec=60, tv_usec=0}) = 0 (Timeout)
select(5, [], [4], [], {tv_sec=60, tv_usec=0}) = 0 (Timeout)

UPD:我想我找到了解决方案。我的备份文件夹位于我的主文件夹中,我尝试备份它。在我排除它之后,一切似乎都很好,但没有。0(超时)来得晚得多。来自另一方(接收方)的 strace:

--- SIGSTOP {si_signo=SIGSTOP, si_code=SI_USER, si_pid=124744, si_uid=0} ---
--- stopped by SIGSTOP ---
select(5, [3], [], NULL, NULL)          = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGCONT {si_signo=SIGCONT, si_code=SI_USER, si_pid=124744, si_uid=0} ---
select(5, [3], [], NULL, NULL)          = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGSTOP {si_signo=SIGSTOP, si_code=SI_USER, si_pid=124744, si_uid=0} ---
--- stopped by SIGSTOP ---
select(5, [3], [], NULL, NULL)          = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGCONT {si_signo=SIGCONT, si_code=SI_USER, si_pid=124744, si_uid=0} ---
select(5, [3], [], NULL, NULL)          = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGSTOP {si_signo=SIGSTOP, si_code=SI_USER, si_pid=124744, si_uid=0} ---
--- stopped by SIGSTOP ---
select(5, [3], [], NULL, NULL)          = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGCONT {si_signo=SIGCONT, si_code=SI_USER, si_pid=124744, si_uid=0} ---
select(5, [3], [], NULL, NULL)          = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGSTOP {si_signo=SIGSTOP, si_code=SI_USER, si_pid=124744, si_uid=0} ---
--- stopped by SIGSTOP ---
select(5, [3], [], NULL, NULL)          = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGCONT {si_signo=SIGCONT, si_code=SI_USER, si_pid=124744, si_uid=0} ---
select(5, [3], [], NULL, NULL)          = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGSTOP {si_signo=SIGSTOP, si_code=SI_USER, si_pid=124744, si_uid=0} ---
--- stopped by SIGSTOP ---
select(5, [3], [], NULL, NULL)          = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGCONT {si_signo=SIGCONT, si_code=SI_USER, si_pid=124744, si_uid=0} ---
select(5, [3], [], NULL, NULL)          = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGCONT {si_signo=SIGCONT, si_code=SI_USER, si_pid=124744, si_uid=0} ---
select(5, [3], [], NULL, NULL)          = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGCONT {si_signo=SIGCONT, si_code=SI_USER, si_pid=124744, si_uid=0} ---
select(5, [3], [], NULL, NULL)          = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGCONT {si_signo=SIGCONT, si_code=SI_USER, si_pid=124744, si_uid=0} ---
select(5, [3], [], NULL, NULL)          = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGCONT {si_signo=SIGCONT, si_code=SI_USER, si_pid=124744, si_uid=0} ---
select(5, [3], [], NULL, NULL)          = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGCONT {si_signo=SIGCONT, si_code=SI_USER, si_pid=124744, si_uid=0} ---
select(5, [3], [], NULL, NULL)          = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGCONT {si_signo=SIGCONT, si_code=SI_USER, si_pid=124744, si_uid=0} ---
select(5, [3], [], NULL, NULL)          = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGCONT {si_signo=SIGCONT, si_code=SI_USER, si_pid=124744, si_uid=0} ---
select(5, [3], [], NULL, NULL)          = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGCONT {si_signo=SIGCONT, si_code=SI_USER, si_pid=124744, si_uid=0} ---
select(5, [3], [], NULL, NULL)          = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGCONT {si_signo=SIGCONT, si_code=SI_USER, si_pid=124744, si_uid=0} ---
select(5, [3], [], NULL, NULL)          = ? ERESTARTNOHAND (To be restarted if no handler)

答案1

不要使用 sshfs,因为它的稳定性并不总是一流的,而且它的行为rsync可能不是最优的。

相反,配置rsnapshot为直接使用 rsync-over-ssh。以下示例来自rsnapshot手册页

备份 [电子邮件保护]:/etc/foo.com/

看一下rsync手册页还想了解更多信息。

答案2

我认为我找到了解决方案。有两个错误。
第一个 - 我的备份文件夹在同步文件夹中。(我在 /home/backup 中安装了备份服务器,但同步了整个 /home)。
因此,rsync 总是给出超时 (0) 来尝试执行这个奇怪的递归任务。

第二个问题是连接。同步一段时间后,服务器和客户端之间开始出现一些不同步(我认为是提供商限制,而不是连接问题,因为它已正确安装)。这也导致超时 (0)。
如果我只有第二个错误 - 那根本不是问题,因为几次 rsync 启动后文件夹就会在服务器上。但是因为我遇到了第一个错误,rsync 无法继续同步并一次又一次地启动。

相关内容