2013-04-26 37 views
2

我正在使用cron将文件写入由bash脚本运行的日志。在cron中的调用如下:为什么百分号(%)在crontab中不起作用?

*/25 * * * * bash script.sh > "/var/log/$(date +%Y-%m-%d_%H:%M).log" 

但是,当我检查的crontab它记录作为

*/25 * * * * bash script.sh > "/var/log/$(date +).log" 

它从来没有写入日志文件。有什么我需要改变让cron写日期?

回答

4

这是逃避变量的问题:

* * * * * /usr/bin/touch /tmp/$(date +\%Y:\%m).log 
#         ^^

工作给我。

man 5 crontab

百分比-体征(%)在命令,除非与反斜杠转义(\),将变为新行字符,并且所述第一%之后的所有数据将被发送到命令作为标准输入。

所以

*/25 * * * * /bin/bash script.sh > "/var/log/$(date +\%Y-\%m-\%d_\%H:\%M).log" 
#             ^^^^^

应该工作。

注意我使用/bin/bash而不是bash

相关问题