我知道已经问过无数次了,但是我正在寻找一种使用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的流并进行修改?
答案 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
或配置为所需的任何格式。