2014-10-28 65 views
1

我已经想出了如何使用>>将cron作业输出到日志文件并提供日志文件的路径。 >>将日志信息附加到现有文件。我如何做到这一点,以便cron作业每次创建新的日志文件? (即rsync.log,rsync(1).log,rsync(2).log - 理想情况下,尽管我希望日志的文件名为DD-MM-YY.log)。每次执行cron作业时都会创建新的日志文件

我想要一个单独的日志文件,所以这一个日志文件没有那么大,如果/当我们去看看文件/文件夹是否成功备份(我在cron作业中运行rsync命令)我们不必梳理通过MASSIVE日志文件。

此外,当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作业都有一个单独的日志文件,则只需打开它创建日期的日志文件并查看备份的内容即可。

我目前的cronjob:

*/1 * * * * rsync -avz /home/me/test/ [email protected]:test/ >>/home/me/cron_logs/homedir_backups/rsync.log 2>&1 

我只把它设置为1分钟用于测试目的。最终这只会在午夜每天运行。

回答

1

如果您需要时间戳记日志,请以数字格式添加日期年份的格式化日期命令字符串 日期+%d%y%m。

可以使用反引号把字符串中的cron:

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

所以文件名必须附加到它当前的日期。反引号说“运行这个命令并把输出作为一个字符串”。

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

+0

提问的不利之处。真棒。只是想非常感谢你Eugene的反拨意见。这正是我所期待的。我会为你投票,但我不够流行。 – 00fruX 2014-10-29 04:02:27

+0

@ 00fruX感谢他接受了答案。 – franklin 2015-01-27 14:14:24

+0

感谢提醒@franklin。在它告诉我“投票需要15个声望”后,我翻了个白眼,关闭了标签,并且没有回头 - 甚至没有看到复选标记作为答案。 – 00fruX 2015-01-27 17:25:45

相关问题