Bash
Cron 作業未寫入日誌文件
我有一個 shell 腳本,它在執行時將日期寫入日誌文件。當我手動執行腳本時,正確的輸出被寫入文件。但是,這需要自動化,當我作為 cron 作業執行時,沒有任何內容寫入文件,我很困惑為什麼。
crontab:
0 * * * * tomcat /usr/bin/sh /apps/rdsreplication/snap_replication.sh
範常式式碼:
#/bin/bash/ echo ---------------------------------------- >> create_snap.txt echo Start time: >> create_snap.txt date >> create_snap.txt
任何幫助,將不勝感激!
shell 腳本需要使用日誌文件的完整路徑:
#/bin/bash/ # assuming you want the txt file in the same directory as the bash script logfile="$(dirname "$0")/create_snap.txt" { echo ---------------------------------------- echo Start time: date } >> "$logfile"
對於 user
crontab
,手冊頁crontab(5)
描述了以下欄位:每行有五個時間和日期欄位,如果這是系統 crontab 文件,則後跟一個使用者名,然後是一個命令。
所以在你的情況下,你會想要這個:
0 * * * * /usr/bin/sh /apps/rdsreplication/snap_replication.sh
您應該知道,
cron
它將通過電子郵件向您發送作業的輸出和標準錯誤(如果有),因此您可能有很多電子郵件告訴您cron
找不到命令tomcat
。(或者如果可以,那tomcat
不理解該行的其餘部分。)