gpt4 book ai didi

logging - 每次 cron 作业运行时都会生成新的日志文件

转载 作者:行者123 更新时间:2023-12-02 14:41:09 24 4
gpt4 key购买 nike

我已经弄清楚如何使用 >> 将 cron 作业输出到日志文件并提供日志文件的路径。 >> 将日志信息附加到现有文件中。我怎样才能让 cron 作业每次运行时创建一个新的日志文件? (即rsync.logrsync(1).logrsync(2).log——理想情况下,我想要该文件日志名称类似于 DD-MM-YY.log)。

我想要一个单独的日志文件,这样这个日志文件就不会变得那么大,并且当我们去查看文件/文件夹是否已成功备份时(我正在 cron 作业中运行 rsync 命令)我们不必梳理大量日志文件。

此外,当 cron 作业输出到日志文件时,没有时间/日期引用。我的第一个日志输出示例:

**sending incremental file list**
**sent 78 bytes received 11 bytes 35.60 bytes/sec**
**total size is 0 speedup is 0.00**

就是这样。每次运行作业时,此日志文件上的时间戳都会不断变化,因此我们甚至无法知道通过 rsync 复制特定文件/文件夹的日期。如果每次 cron 作业运行时都有一个单独的日志文件,我可以打开该日志文件创建的特定日期并查看备份的内容。

我当前的定时任务:

*/1 * * * * rsync -avz /home/me/test/ 1234@xxx-a123.rsync.net:test/ >>/home/me/cron_logs/homedir_backups/rsync.log 2>&1

出于测试目的,我仅将其设置为 1 分钟。最终,这只会在每天午夜运行。

最佳答案

如果您想要带时间戳的日志,请添加格式化日期命令的字符串,date +%d%y%m 表示数字格式的日月年。

您可以使用反引号将字符串放入 cron 中:

~$ /home/me/cron_log-`/bin/date +%d-%m-%y`

因此文件名将附加当前日期。反引号表示“运行此命令并将输出作为字符串放在这里”。

现在的问题是你的目录可能会变得很大,然后你必须编写一个简短的脚本来按时间删除它们。我有一个脚本可以读取格式并保留 X 并删除其余部分,但大多数人只会使用“查找”来删除按时间排序的旧内容,例如 mtime > 1 年的日志。

关于logging - 每次 cron 作业运行时都会生成新的日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26619961/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com