crontab中記錄的編寫比較簡單,下面是一個示例:
0 2 * * * /app/tpssapp/ftpsrc/tools/statTables/statTables.sh > /app/tpssapp/ftpsrc/tools/statTables/statTables.log
表示每天2點執行/app/tpssapp/ftpsrc/tools/statTables/statTables.sh。
這里有個問題是,有時候,因為shell腳本的問題,導致在自己在命令行中運行的shell腳本和crontab中運行的效果不一樣。這個問題的原因就是,在shell命令中shell腳本使用了系統的環境變量,一個用戶的命令行,起碼讀取的2個環境變量配置文件:/etc/profile和${HOME}/.bash_profile。如果shell腳本在crontab執行出現問題,原因就是它在執行的時候,沒有加載這兩個環境變量配置文件。所以,我們需要在shell腳本中自己去指定讓shell去設定環境變量。
代碼如下:
#! /bin/sh echo `pwd` echo `id` USER_HOME=/home/`whoami` . /etc/profile if [ -f ${USER_HOME}/.bash_profile ]; then echo ${USER_HOME}/.bash_profile . ${USER_HOME}/.bash_profile fi BASE_PATH=/app/tpssapp/ftpsrc/tools/statTables cd ${BASE_PATH} java -jar statTables-v2.0.jar
腳本上面的部分,可以作為一個通用的東西,配置在每一個腳本中。