脚本start.sh
已在crontab
注册,以便每天运行
但是我想将程序的输出保存到文件中,例如cronlog-yyyyMMdd.log
我尝试了以下但失败了:
16 10 * * 1-5 ~/start.sh >> ~/cronlog/$(date+"\%F")-cron.log 2>&1
有人帮助我吗?
答案 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。