You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

rsync同步Plex媒体库至远程节点:频繁断开、未完成文件无法续传的问题及优化方案咨询

解决Plex媒体库rsync同步频繁断开与续传问题

我来帮你搞定这个rsync同步的问题——频繁断开+断点续传失效确实是Plex媒体库同步的常见痛点,结合你当前的命令,我给你分几个维度的优化方案:

一、修复断点续传与校验和验证

你当前用了--append,但这个参数只会在文件末尾继续传输,不会校验已传输部分的完整性,一旦中断后源文件有微小修改,就会导致目标文件损坏。想要实现校验和续传,你需要调整两个关键参数:

  • 替换--append为--append-verify:这个参数会在续传前自动校验目标端已传输的文件片段和源文件对应部分的校验和,确认一致后再继续传输,既保证了续传的可靠性,又避免了文件损坏。
  • 增加--checksum参数:默认rsync靠文件大小和修改时间判断是否需要同步,加上这个参数会强制用校验和对比文件内容,适合Plex这类大媒体文件的同步,能避免因文件属性变化导致的不必要重传,也提升了同步准确性。

二、解决频繁断开的问题

频繁断开大多是SSH连接不稳定或超时机制不合理导致的,给你几个针对性的调整:

  • 优化SSH连接的保活与超时:在ssh命令里加入-o ServerAliveInterval=60 -o ServerAliveCountMax=3,意思是每60秒向远程端发送一次保活包,如果连续3次没收到回应才断开,避免长时间无数据传输被远程服务器踢下线。
  • 增加--timeout=300参数:设置rsync的全局超时时间为5分钟,超过这个时间没有数据传输就自动重试,而不是直接终止任务。
  • 保留未完成的传输文件:加上--partial参数,默认rsync会删除中断后的未完成文件,这个参数会保留它们,配合--append-verify能更顺畅地续传。
  • 尝试rsync守护进程模式(可选):如果远程节点允许,把rsync配置成守护进程(rsyncd),用rsync://协议代替SSH,这种模式的连接稳定性比SSH更高,适合大文件长期同步。你需要在远程端编辑/etc/rsyncd.conf,配置Plex库的同步模块、权限等,然后启动rsync服务。

三、提升同步整体可靠性的额外技巧

  • 用脚本封装自动重试:写个简单的bash脚本,让rsync断开后自动重试,不用手动干预。示例脚本如下:
#!/bin/bash
MAX_RETRIES=5
RETRY_COUNT=0

while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
    rsync -avi -b --backup-dir=/volume1/PLEX/removed --progress --append-verify --checksum --timeout=300 -e 'ssh -p222 -o ServerAliveInterval=60 -o ServerAliveCountMax=3' /mnt/MoviesMnt user@XX.XX.XX.XX:/volume1/PLEX --delete-after --out-format="%t %f"
    EXIT_CODE=$?
    if [ $EXIT_CODE -eq 0 ]; then
        echo "Plex媒体库同步成功完成"
        exit 0
    else
        RETRY_COUNT=$((RETRY_COUNT+1))
        echo "同步失败,正在重试第 $RETRY_COUNT 次..."
        sleep 60
    fi
done
echo "达到最大重试次数,同步任务失败"
exit 1
  • 记录同步日志:把rsync的输出重定向到日志文件,方便排查问题。比如在命令末尾加上>> /var/log/plex_sync.log 2>&1,这样所有输出和错误都会被记录下来,你可以随时查看断开的具体原因。
  • 避开高峰时段同步:如果远程节点在白天带宽紧张或负载高,把同步任务调整到凌晨这类低峰时段,能有效降低断开概率。

最终优化后的rsync命令

把上面的调整整合后,你可以用这个命令来同步:

rsync -avi -b --backup-dir=/volume1/PLEX/removed --progress --append-verify --checksum --timeout=300 --partial -e 'ssh -p222 -o ServerAliveInterval=60 -o ServerAliveCountMax=3' /mnt/MoviesMnt user@XX.XX.XX.XX:/volume1/PLEX --delete-after --out-format="%t %f"

内容的提问来源于stack exchange,提问作者Preston Palmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 15:27:44