如何将crontab作业启动的运行程序的输出日常打印到文件中

时间:2014-04-11 08:11:02

标签: linux shell crontab

脚本start.sh已在crontab注册,以便每天运行

但是我想将程序的输出保存到文件中,例如cronlog-yyyyMMdd.log

我尝试了以下但失败了:

16 10 * * 1-5 ~/start.sh >> ~/cronlog/$(date+"\%F")-cron.log 2>&1

有人帮助我吗?

2 个答案:

答案 0 :(得分:0)

16 10 * * 1-5 ~/start.sh >> ~/cronlog/$(date +"\%F")-cron.log

编辑:正如评论中所解释的那样,这可以通过纠正提问者尝试进入的拼写错误来回答问题

答案 1 :(得分:0)

使用所有程序和文件的完全限定路径可以消除调试crontab条目问题时出现的一类错误。在这种特殊情况下,这样做只会证明crontab条目中的PATH问题没有问题。

您的问题是在date cmd和它的格式化参数字符串之间需要空格字符,而不是

$(date+"\%F")
#0    ^v
$(date +"\%F")

我赞赏你的好crontab调试礼仪;将std-err和std-out捕获到文件中可以得到1.证明您的命令在预期时运行(或者如果您的时间规范中有错误,它将在cmd运行时显示)。 2.您避免让您的localhost电子邮箱填满来自cron守护程序的消息。 3还会捕获生成的任何std-err消息,并且通常与std-out消息同步和时间顺序。

IHTH。