让 rsync 逐步工作

让 rsync 逐步工作

我们有两个 syslog 服务器,它们之间有 rsync 进程。rsync 进程每 15 分钟运行一次。我们每天轮换日志,但一天结束时,仍然有几十 GB 的日志 - 这意味着 HDD I/O 变得非常繁重。(我猜是因为 rsync 总是同步整个文件)

并不是日志文件很多,只是日志文件变得相当大。

有没有办法逐步同步?比如“已经有前 100 000 行日志,我只想发送最后 2000 行?”

或者你能建议对这种设置进行其他改进吗?我们目前使用“rsync -avrH”命令。

感谢您的建议!

答案1

看起来系统正在按照设计运行。rsync 协议仅将对现有文件的更改发送到远程文件。它通过确定本地和远程文件时间戳是否不同来实现这一点。如果不同,则读取本地文件并计算块的校验和(远程文件也一样),并将更改的块发送到远程文件。

这总是需要对文件进行完整的扫描,因为我认为你不能排除它的某些部分。

如果 I/O 确实对您来说是个问题,那么我会考虑更频繁地对日志进行日志轮转。这意味着一旦轮转并关闭,文件将只被考虑用于 rsync 一次。活动日志文件也将小得多,因此需要更少的 I/O 来找出更改的位置。

相关内容