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

如何过滤Cygwin与Rsync日志中的不必要条目?

解决rsync日志冗余条目过滤问题

修改思路

rsync的--log-file参数是直接将日志写入文件,无法中途过滤内容。因此需要调整命令,让rsync将日志输出到标准输出/错误流,通过grep过滤冗余条目后再写入日志文件。

修改后的脚本命令

rsync --times --update --remove-source-files -r -e "ssh -i /cygdrive/c/users/administrator/.ssh/id_rsa" ubuntuuserXYZ@192.168.1.1:/home/sftpuser/sourcefolder/ /cygdrive/e/destfolder --out-format="%t [$$] %o %f %l bytes" 2>&1 | grep -v -E 'receiving file list|sent [0-9]+ bytes  received [0-9]+ bytes  total size 0' >> "/cygdrive/c/tools/sftp/rsync_in.log"

关键修改说明

  • 移除--quiet:让rsync输出原本写入日志的内容到控制台,否则会抑制日志输出。
  • 移除ssh -v:去掉SSH的调试输出,避免额外冗余;若需保留SSH调试信息,可保留-v,但需确保过滤规则不会误删有用内容。
  • 替换--log-file和--log-file-format为--out-format:指定输出到标准输出的日志格式,[$$]会替换为当前rsync进程ID,和原日志的进程ID格式保持一致。
  • 2>&1:将标准错误流重定向到标准输出,确保所有rsync相关输出都能被grep处理。
  • grep -v -E '...':
    • -v:反向匹配,排除符合规则的行;
    • -E:支持扩展正则表达式,同时匹配两条冗余条目;
    • 正则规则精准匹配你提到的两行冗余内容,确保只过滤目标条目。
  • >>:以追加模式写入日志文件,适合高频运行的计划任务,避免覆盖历史日志。

可选优化

如果需要确保日志文件不会无限增大,可以配合logrotate工具定期轮转日志(需在Cygwin环境中配置),避免磁盘空间占用过高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 05:39:52