rsync: [sender] write error: Broken pipe (32) 问题排查

本文档描述了一个使用lsyncd和rsync进行25G目录同步时遇到的`Brokenpipe`错误,该问题由DDOS防护策略触发。解决方案包括关闭DDOS防护或限制rsync的带宽使用。同时,可以通过添加`insist`参数让lsyncd在初始化失败后继续尝试同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题背景

使用lsyncd rsyncssh模式进行数据同步,目录大小约为25G,lsyncd版本2.2.2,rsync版本3.1.2,源端、目标端网络带宽大小均为1G,lsyncd配置如下:

# 需配置源端到目标端的SSH免密登录
# /etc/lsyncd.conf
settings {
  logfile = "/data/lsyncd/lsyncd.log",
  statusFile = "/data/lsyncd/lsyncd.status",
  pidfile = "/data/lsyncd/lsyncd.pid",
  inotifyMode = "CloseWrite or Modify",
}

sync {
  default.rsyncssh,
  source="/data/source",
  host="1.1.1.1",
  targetdir="/data/target",
  rsync = {
    archive = true,
    compress = false,
    whole_file = false
  },
  ssh = {
    port = 2323
  }
}

启动同步命令:

lsyncd -log Exec /etc/lsyncd.conf

问题现象

同步初始化时总是中断,一般在传输4G左右暂停,重启lsyncd后传输一段时间再次中断。日志报错:

packet_write_wait: Connection to 1.1.1.1 port 2323: Broken pipe
rsync: [sender] write error: Broken pipe (32)
rsync error: unexplained error (code 255) at io.c(820) [sender=3.1.2]
Mon Aug 15 16:09:42 2022 Error: Temporary or permanent failure on startup of "/data/source". Terminating since "insist" is not set.

问题原因

同步开始时进行正常,说明配置正确。中途"Broken pipe",检查源端与目标端之间的防火墙等安全设备配置,发现配置有DDOS防护,DDOS相关告警也佐证了传输中断的原因为数据同步因流量过大被判定为DDOS攻击,因此被拦截。

解决办法

方法一:关闭DDOS防护

方法二:对rsync进行限速,增加bwlimit参数,例如限速5MB/s,配置如下:

settings {
  logfile = "/data/lsyncd/lsyncd.log",
  statusFile = "/data/lsyncd/lsyncd.status",
  pidfile = "/data/lsyncd/lsyncd.pid",
  inotifyMode = "CloseWrite or Modify",
}

sync {
  default.rsyncssh,
  source="/data/source",
  host="1.1.1.1",
  targetdir="/data/target",
  rsync = {
    archive = true,
    compress = false,
    whole_file = false,
    _extra = {"--bwlimit=5000"}
  },
  ssh = {
    port = 2323
  }
}

另外,如果不希望lsyncd在初始化失败后退出,可以在启动时增加参数-insist,这样如果初始化失败,lsyncd会继续不断尝试同步直至恢复正常,生产环境建议添加该参数启动:

lsyncd -insist -log Exec /etc/lsyncd.conf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洒满阳光的午后

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值