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

如何让rsync仅将错误信息写入日志文件?

如何让rsync仅将错误信息写入日志文件?

嘿,这个问题我之前帮人处理过好几次,核心就是要区分rsync的正常输出和错误输出,或者直接用它自带的日志级别控制功能。给你几个实用的方案:

  • 方案一:利用Shell重定向分离输出
    rsync默认会把正常的文件同步信息输出到标准输出(stdout),而错误信息会输出到标准错误(stderr)。我们可以把正常输出直接丢弃,只把错误信息保存到日志里:

    rsync /source/ /dest/ 1>/dev/null 2>error.log
    

    这里1>/dev/null是把标准输出(编号为1)导向系统的“黑洞”,不会保存任何内容;2>error.log则是把标准错误(编号为2)写入你指定的日志文件。这样最终的日志里就只有同步失败的错误信息了。

  • 方案二:用rsync自带的日志级别参数
    rsync本身支持通过--log-level参数控制日志的详细程度,直接指定只记录错误即可:

    rsync /source/ /dest/ --log-file=error.log --log-level=error
    

    这个命令会让rsync只把错误信息写入error.log,不会包含每个文件的同步记录,日志体积会大幅缩小,你就能轻松打开查看了。

  • 补充说明你之前的尝试问题
    你之前用rsync -q /source/ /dest/ > error.log得到空日志,是因为>默认只重定向标准输出,而-q已经让rsync不再输出正常信息,但错误信息是在标准错误流里,没被捕获。如果想用-q的话,应该改成:

    rsync -q /source/ /dest/ 2>error.log
    

    这样就能把错误信息正确写入日志了。

备注:内容来源于stack exchange,提问作者Bartender1382

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 07:43:02