带有百分比符号的命令未在crontab中运行


11

以下crontab不起作用:

# TEST LINE DOES DOT RUN
*/1 * * * * /bin/echo 'test '`/bin/date +%Y-%m-%d` >> /tmp/test

我也尝试从以下开始:

SHELL=/bin/bash

更新:我认为反引号`是恶棍,但正如下面的答案所表明的,百分比%是罪魁祸首!


您的测试线每小时仅运行一次。那可能不是您打算测试的内容。
user535733 2014年

不是第一分钟吗?
#mh

您是对的。我更改为* / 1,以使其每分钟运行一次。cron运行良好。命令中有些东西。似乎是/bin/date +%Y-%m-%d
lpanebr 2014年

Answers:


13

/bin/date +%Y-%m-%d,你需要逃避每个%\根据本手册页

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


2
谢谢!我将编辑问题,使其适合实际问题。
lpanebr 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.