使用cron / rsync备份Ubuntu服务器:恢复大文件时出现问题

我目前有一个专用的Ubuntu备份服务器,每天都会从挂起(使用rtcwake)唤醒自己。 5分钟后,一个cron BASH工作开始,使用rsync从各个networking位置提取文件。 如果这个BASH脚本完成了,它所做的最后一件事就是让服务器重新进入hibernate状态,直到第二天(备份作业开始运行之前的5分钟 – 您可以看到图片!)。

还有一个额外的cron作业,在10:45 pm运行,以“清除”任何正在运行的脚本/ rsync进程,然后暂停机器,直到第二天。

我的问题/查询是:机器是在一个慢速链接(802.11n无线),并必须同步一些非常大的媒体文件。 我正在使用与此类似的rsync命令:

rsync -aPvz -e ssh --itemize-changes --modify-window=60 --exclude 'thumbs.db' /source/ /destination/ 

而在rsync无法在服务器唤醒的时间内完成的情况下,我假定(因为-P)它会尝试从中断的地方继续。

实际上似乎发生的是,我最终得到目录中同一文件的多个部分副本,但副本从未完成。

例如:

 .BigFile.mkv.EJtNSS (4.1GB) .BigFile.mkv.KSUStW (3.7GB) .BigFile.mkv.LSewSA (4.3GB) 

有没有人遇到过类似的情况? 如果有一块软件可以做类似的工作(包括处理睡眠/唤醒),我很乐意将它改变。 我是BASH脚本的新手,但尝试任何build议。

干杯,洛兹

添加--inplace将大大帮助大文件。 它使得在失败或死亡的rsync更快之后,因为它不使用临时文件。

从你的症状来看,同步尝试很可能是未完成的,因为链接速度慢,而且之后会有额外的同步查杀。 在这种情况下, --inplace选项实际上是最糟糕的select,因为它不是为networking绑定的情况而devise的。 引用 – --inplace选项:

警告:在传输过程中文件的数据将处于不一致的状态( 如果传输被中断,可能还会出现这种情况)…

你可能想看看另一篇文章 ,用rsync同步非常大的文件。 (提示:– --append )此外,您指定的--partial选项( -P包括--partial )不会拾取现有的部分文件,这很奇怪。 没有足够的信息来确定原因,但可以通过更详细的选项来检查(添加更多的-v )。