如何将消息从 bash 脚本记录到特定路径中的日志文件



如何将消息从 bash 脚本记录到特定路径中的日志文件中?

一个朴素的实现是这样的命令:

echo My message >>/my/custom/path/to/my_script.log

但这可能有很多缺点(例如没有日志轮换)。我可以使用"logger"命令,但据我所知,它不支持自定义路径中的日志,如果您有很多可以使用自定义日志文件的 bash 脚本,则不容易配置。

在像Ruby这样的脚本语言中,这一切都非常简单:https://github.com/rudionrails/yell/wiki/101-the-datefile-adapter我也可以基于这个 ruby 库制作自己的记录器命令并从我的 bash 脚本中调用它,但我想已经有一个众所周知的解决方案可以为 shell 脚本提供类似的行为?

您可以通过这种方式简单地将文本从 bash 脚本附加到日志文件中:

echo "My message" >> /my/custom/path/to/my_script.log

旋转由 logrotate 处理,您只需要将设置添加到/etc/logrotate.conf 中的 .conf 中即可。该配置不言自明,手册页也非常有用,但简而言之,如果您想每周轮换并以压缩格式保留 4 周的日志,并在最后一个日志轮换时创建一个新的空日志,您只需输入 .conf:

/my/custom/path/to/my_script.log {
    rotate 4
    weekly
    create
    compress
    endscript
}

您还可以在手册页(man logrotate)中签出许多其他选项,例如通过电子邮件发送日志文件,执行轮换命令,在文件达到一定大小时旋转等。

相关内容

  • 没有找到相关文章

最新更新