2013-04-26 80 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

相關問題