Mplayer cronjob 不起作用

Mplayer cronjob 不起作用

可能的重复:
如何date在 cron 选项卡作业中执行?

我做了一个定时任务,在每周五下午 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

这不起作用,而以下起作用

57 22 * * 5 echo "foo" > /home/david/barr

并且以下方法也可以(我知道超时回声没有意义。这只是一个例子)

57 22 * * 5 timeout -s SIGINT 66m echo "foo" > /home/david/barr

现在我想知道为什么这不起作用..它没有在 /home/david/HOA-NL-LOG 中给我错误或消息

答案1

您犯了在 cron 作业中使用的经典错误date +%foo,导致您遇到 cron 最令人困惑的功能。清楚地记录在其中man 5 crontab但经常被忽视,如下:

该行的整个命令部分(直到换行符或 % 字符)将由 /bin/sh 或 crontab 文件的 SHELL 变量中指定的 shell 执行。命令中的百分号 (%),除非用反斜杠 (\) 转义,否则将更改为换行符,并且第一个 % 之后的所有数据都将作为标准输入发送到命令。

反斜杠你的百分号!

相关内容