我正在开发一个备份日志的系统。
我需要将日志复制到其他路径中才能进行备份。我发现 inotify (我绝对不知道)应该帮助我完成这项任务,但我不确定......我知道可以在目录上工作,但这是我想做的:
当某个文件夹中的文件被修改后,将该文件复制到其他文件夹中。
这可能是一件基本的事情,但我没有找到任何清晰的东西......如果你有任何想法......
答案1
对于跨多台机器复制日志,更好的方法可能是仅配置 rsyslog 来存放日志的多个副本。
或者...
如果您只需要每天克隆日志,请在 /etc/logrotate.d/* 文件(您想要克隆的文件)中添加一个钩子,这样每次轮换日志时,您都会从一台计算机对日志进行 rsync给其他人。
如果您使用 inotify()(可能通过 inotifywait 或 lsyncd),那么您最终可能会遇到这样的情况:您的计算机在尝试将快速日志更改处理为副本到其他计算机时不断地抖动(减慢速度)。
如果您采用 inotify() 路线,请确保仅对低容量日志(不频繁的日志记录/更改)执行此操作。如果您不小心访问高流量计算机上的 syslog 或 Apache 等日志,则可能会导致计算机停机。
答案2
使用 cron 作业(按分钟、每小时、每天等)本地和/或远程到另一个系统进行 rsync 更新。 Rsync 非常适合备份,并且有许多强大的选项。