如何在crond的本机日志中添加timstamp?

时间:2019-11-30 16:15:52

标签: linux bash cron

我知道已经问过无数次了,但是我正在寻找一种使用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的流并进行修改?

1 个答案:

答案 0 :(得分: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

或配置为所需的任何格式。