我知道已经问过无数次了,但是我正在寻找一种使用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 票数: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 

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

  ask by user12341234 translate from so

本文未有回复,本站智能推荐: