可能的重复:
如何date
在 cron 选项卡作业中执行?
我做了一个 cronjob 来记录每个星期五晚上 23 点到午夜之间的流。只是不知何故这似乎不起作用。
cronjob是
57 22 * * 5 timeout -s SIGINT 66m mplayer -dumpstream http://82.201.100.23:80/slamfm -dumpfile /var/www/HOA-NL/$(date +"%U-%Y").mp3 >> /home/david/HOA-NL-LOG 2>&1
Run Code Online (Sandbox Code Playgroud)
这在以下工作时不起作用
57 22 * * 5 echo "foo" > /home/david/barr
Run Code Online (Sandbox Code Playgroud)
并且以下也有效(我知道,超时 echo 没有意义。这只是一个例子)
57 22 * * 5 timeout -s SIGINT 66m echo "foo" > /home/david/barr
Run Code Online (Sandbox Code Playgroud)
现在我想知道为什么这不起作用..它在 /home/david/HOA-NL-LOG 中没有给我错误或消息
您犯了date +%foo
在 cron 作业中使用的经典错误,导致您遇到了 cron 最令人困惑的功能。清楚地记录在man 5 crontab
但经常被忽视的地方,这里是:
该行的整个命令部分,直到换行符或 % 字符,将由 /bin/sh 或由 crontab 文件的 SHELL 变量中指定的 shell 执行。命令中的百分号 (%),除非用反斜杠 (\) 转义,否则将更改为换行符,并且第一个 % 之后的所有数据将作为标准输入发送到命令。
反斜线你的百分号!
归档时间: |
|
查看次数: |
988 次 |
最近记录: |