并行 rsync

admin 2025年4月22日09:13:36评论11 views字数 657阅读2分11秒阅读模式
默认 rsync 是串行的,对于小文件传输效果不好,速度起不来。可以通过多进程的方式启动多个 rsync 实例,提高 rsync 并发量。
一般 rsync 任务多用于备份目录,可以将原目录进行拆分,拆分成许多子目录。对每个子目录单独启动 rsync 任务,这样就可以并行执行同步任务。但也不能所有子目录一起同步,这样并发量过高会对CPU和存储都带来压力。通过控制并发量让部分同步任务先执行,其它同步任务在队列中等待。
用 AI 写了一个并发版本的 rsync ,使用方式如下:
并行 rsync
使用时提供一个目录列表和一个目标目录(备到哪里去),使用 -j 控制并发量。
# 示例:python p_rsync.py   -l dir.list   -t /it/hyang0/home_bak   -j 4
备份完成时的效果如下:
并行 rsync
我们通过一个例子演示如何使用。比如用 p_rsync.py 备份 /root 目录,先通过 find 命令生成一个 root 的子目录列表:
find /root   -mindepth 1   -maxdepth 1   -type d > dir.list
然后通过 -l 将目录列表传参给 p_rsync.py 备份脚本。备份开始后会生成备份任务,并按 -j 指定的并发量执行 rsync,处于等待队列中的任务会依次进入执行队列。
并行 rsync
代码已经上传到 github ,目前程序还有一点小问题,按 ctrl+c 后只有正在执行的子进程退出,需要一直按 ctrl+c 把所有进程都取消掉。
https://github.com/hyang0/my_tools_wbai.git
并行 rsync
全文完。

原文始发于微信公众号(生有可恋):并行 rsync

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月22日09:13:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   并行 rsynchttps://cn-sec.com/archives/3984915.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息