我使用 back-in-time 来备份我的 Linux 安装。它充当命令的高级包装器rsync
。
今天我尝试将 /var/log 添加到要备份的文件夹列表中,结果导致了一些严重的性能问题。该作业似乎卡在某个文件上,rsync
父进程的 CPU 使用率达到 100%。然后我lsof
查看了哪个文件导致了问题,结果似乎是/var/log
目录。
我谷歌了一下,并尝试了不同的rsync
选项,发现--checksum
问题出在它上面。如果没有这个参数,增量备份可以在几分钟内正常完成。如果有这个参数,当rsync
尝试同步不断变化的日志文件时,该过程将卡住。这有点道理,但在我看来这仍然是一个错误。
我是否正确使用了该选项? 有解决方法吗?
答案1
您可能考虑在同步之前执行日志轮换。跳过活动文件,只备份存档。您甚至可以在日志正常轮换后将 rsync 设置为后轮换操作。
答案2
请记住,校验和仅用于验证文件传输是否已成功完成。如果您愿意的话,这是一种确保文件未损坏的方法。
这可能不是您想要的答案,但 --checksum 会很慢。没有办法解决这个问题。如果我是您,我会创建一个快速的 bash 脚本来压缩您运行备份之前的所有日志。
快速做点什么就够了:
#!/bin/sh
for file in /path/to/log/dir/*;
do;
zip `basename $file`.zip *;
rm -f "$file";
done;
然后运行备份。这将使 rsync 免于创建可能很大的日志文件的校验和。
态度好点...我知道这不是你想要的答案。
祝你好运