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

如何实现通用多线程Rsync传输,无需针对目录结构定制适配脚本?

问题解答

你的思路是否合理

你的思路完全合理,不需要针对不同目录结构单独写适配脚本,已有成熟的通用解决方案。

通用多线程rsync实现方案

分两种场景选择即可:

场景1:环境rsync版本≥3.2.0(主流新发行版默认已满足)

官方已经原生内置多线程支持,直接使用--threads参数即可,完全符合你预期的调用方式:

rsync -avr --threads=10 a/ b/
  • 无需适配任何目录结构,自动拆分传输任务跑满指定线程数
  • 原生实现比自行拼接的xargs方案更稳定,兼容rsync原有增量同步、权限保留等所有特性
  • 跨主机传输时可额外加--compress-choice=lz4参数启用多线程压缩,进一步提升传输效率

场景2:环境rsync版本低于3.2.0,无法升级

用find遍历所有文件配合xargs并行即可,通用适配任意目录结构:

cd a && find . -type f -print0 | xargs -0 -n1 -P10 -I{} rsync -aR {} ../b/
  • -print0和-0参数配合处理文件名带空格、特殊字符的场景,避免报错
  • -R参数保留文件相对路径,自动在目标目录重建和源端一致的目录结构,不会出现文件堆在根目录的问题
  • 小文件占比高的场景可以把-n1调整为-n10,每次同步10个文件,减少rsync进程fork的开销,速度可进一步提升

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 05:42:01