关于Cron定时调用Rsync同步种子服务器文件的两类异常场景咨询
关于Cron定时调用Rsync同步种子服务器文件的两类异常场景咨询
问题1:当server2上的TV文件正在下载时,server1发起rsync同步会发生什么?
咱们结合你用的rsync参数和torrent客户端的行为来拆解:
- 要是你的torrent客户端没给正在下载的文件加独占锁(像Transmission、qBittorrent这类主流客户端默认都允许读取),rsync会复制当前已经下载好的文件片段。但因为文件还在持续写入,它的大小和修改时间(mtime)会一直变,下一次rsync跑的时候,
--update参数会检测到源文件比server1上的目标文件更新(要么mtime更晚,要么文件更大),就会再次同步这个文件——直到下载完成,torrent客户端把mtime固定在下载完成的时间点,后续的rsync就不会再碰这个文件了。 - 如果torrent客户端给正在下载的文件加了独占锁(比如某些小众客户端或者开了特殊保护设置),rsync会碰到读取失败的错误(比如提示“权限不足”或者“连接被重置”),这时候它会直接跳过这个文件,等下一次cron触发同步时再重试。
问题2:当server2午夜重启离线时,rsync同步会发生什么?
这种情况很直白:rsync根本连不上server2,会输出“连接超时”“主机不可达”这类错误,整个同步任务直接终止,不会有任何文件被同步到server1。不过好在你是每小时用cron触发一次同步,等server2重启完成、恢复在线后,下一次cron运行时,rsync就能正常建立连接,然后通过--update参数对比文件的mtime和大小,只同步那些需要更新的内容,完全不会影响之前已经同步好的文件。
备注:内容来源于stack exchange,提问作者Jesper Work
相关产品推荐
相关产品推荐

