【问题标题】:How to add timstamps to crond's native logs?如何为 crond 的原生日志添加时间戳?
【发布时间】:2019-12-01 11:52:17
【问题描述】:

我知道这个问题已经被问过无数次了,但我正在寻找一个使用 crond 的本机日志功能的解决方案。我不想通过管道输出每个 cron 的输出并预先添加时间戳。

我正在像这样启动 crond:

crond -L /var/log/cron.log -f

日志是这样的:

crond: crond (busybox 1.30.1) started, log level 8
crond: USER root pid  16 cmd echo "hello"
crond: USER root pid  18 cmd echo "hello"
crond: USER root pid  19 cmd echo "hello"

我想在行前添加时间戳。我不想向每个单独的 cron 添加一些 stdout 命令并添加日期。

也许我可以查看文件并附加到每个新行或其他内容?如何访问 crond 的流并对其进行修改?

【问题讨论】:

    标签: linux bash cron


    【解决方案1】:

    我相信答案是无法修改 crond 输出文件。

    cron 的实际实现细节并不容易控制单个作业的日志文件。此外,crond 以 root 身份运行,这将使用户作业难以更改文件。在 crond 运行时尝试更改文件可能会导致问题。

    请考虑以下选项

    • 编写一个将tail -f 日志文件的进程,并创建一个新的日志文件,每行都以时间戳为前缀。
    • 在启动时运行该进程。
    tail -f /var/log/cron.log | while read x ; do echo "$(date) $x" ; done >> /var/log/cron-ts.log
    

    或者配置成你需要的任何格式。

    【讨论】:

      猜你喜欢
      • 2015-08-30
      • 2020-08-18
      • 1970-01-01
      • 2012-05-03
      • 1970-01-01
      • 2011-02-05
      • 1970-01-01
      • 1970-01-01
      • 2018-07-15
      相关资源
      最近更新 更多