Cron
將 cron 輸出發送到名稱中帶有時間戳的文件
我在 LAMP 設置上有一個這樣的 crontab:
0 0 * * * /some/path/to/a/file.php > $HOME/cron.log 2>&1
這會將文件的輸出寫入cron.log。但是,當它再次執行時,它會覆蓋文件中以前的任何內容。
如何讓 cron輸出到文件名中帶有時間戳的文件?
範例文件名如下所示:2010-02-26-000000-cron.log
我並不關心格式,只要它有某種時間戳。
提前致謝。
嘗試:
0 0 * * * /some/path/to/a/file.php > $HOME/`date +\%Y\%m\%d\%H\%M\%S`-cron.log 2>&1
如果您願意,可以使用日期格式;只要確保逃脫任何
%
like\%
,如上所述。
我強烈建議您使用時間戳將所有內容保存到同一個文件中,如Abdullah Diab 的部落格中所述。
消除
2>&1
…並在將其保存到日誌文件之前通過時間戳腳本執行它。
timestamp.sh
腳本:#!/bin/bash while read x; do echo -n `date +%d/%m/%Y\ %H:%M:%S`; echo -n " "; echo $x; done
請記住
chmod +x timestamp.sh
使其可執行。然後使用如下方式編輯 cron 作業行
crontab -e
:/path/to/my/command.sh 2>&1 | /path/to/timestap.sh >> /var/log/cron/my_log.log