我有远程站点,它们从传感器 (ARM Debian) 收集数据,并且每 15 分钟传输一组数据 (大约 1.1 MB) (服务器是完整的 Debian)。其中一个站点的 GSM 接收效果很差,标准 scp 传输经常中断,必须从头开始。
现在我正在尝试 rsync。在站点上我调用了:
rsync --partial --remove-source-files --progress --rsh=ssh -z FILE root@SERVER:/DIR/
几分钟后,文件出现在服务器上。(是否可以在接收服务器上看到当前的传输状态 - 传输完成时文件出现?)
传输中断后如何恢复?如果文件没有被删除,传输就没有完成?
答案1
如果传输未完成,Rsync 将以非零退出代码退出。如果您正在使用bash
或类似的 shell,一个简单的解决方案是像这样运行它:
until rsync --partial --etc
do
sleep 1
echo trying again
done
这将无限期地重新运行,rsync
直到成功为止。块内的命令do...done
只是示例。您可以在那里放置其他内容。