如何将日志添加到带有时间戳的 crontab

如何将日志添加到带有时间戳的 crontab

在 crontab 中,我安排了一个每日备份脚本。现在,当 cron 执行脚本时,状态将记录到日志文件中,如下所示。

0 0 * * * /home/backup.sh > /home/groupz/db-backup/fbackup.log 2>&1  

现在,当 cron 执行脚本时,日志的内容每次都会更新。因此,我希望将内容添加到同一个文件中,并带有执行时间的时间戳,以及每次内容与现有内容的下方。我该怎么做呢?

答案1

为什么不只是

0 * * * * (/bin/date && /home/backup.sh) >> /var/log/backup.log 2>&1

答案2

如何获取文件中的时间戳

要在文件中添加时间戳,您可以使用date查看man date更多详细信息。例如,如果您在终端中使用,您将获得类似以下输出:

$ date +%d-%m-%y/%H:%M:%S
19-12-13/09:14:42

输出格式为dd-mm-yy/hour:min:sec

如果你希望将时间戳放入文件中,请使用

date +%d-%m-%y/%H:%M:%S > filename

重定向

如果您使用,date +%d-%m-%y/%H:%M:%S > filename则日期将存储在文件中,但每次使用该命令时都会被覆盖。要将其附加到现有文件中,请使用,

date +%d-%m-%y/%H:%M:%S >> filename

它会将最后的执行输出添加到现有文件的末尾。

在您的案例中您会做什么

您可以在末尾添加以下行/home/backup.sh

date +%d-%m-%y/%H:%M:%S

并在 crontab 中使用以下命令,

0 0 * * * /home/backup.sh >> /home/groupz/db-backup/fbackup.log 2>&1

我认为上述修改应该可以满足您的要求。

答案3

(在 Debian Jessie 上)使用软件包ts中的命令moreutils。例如:

0 0 * * * /home/backup.sh | ts '[%Y-%m-%d %H:%M:%S]' > /home/groupz/db-backup/fbackup.log 2>&1  

这会将时间戳添加到输出的每一行并将其保存到日志中。

答案4

您可以使用两个 '>' 将一些内容附加到文件中。

$ echo "test" >> test.txt
$ echo "test" >> test.txt

$ cat test.txt
test
test

相关内容