在向cron進程提交一個crontab文件之前,必須配置環境變量EDITOR。cron進程根據它來確定使用哪個編輯器編輯cron文件。在UNIX和Linux用戶都使用vi,如果你也是這樣,那麼你就編輯$HOME目錄下的.profile文件,在其中加入這樣一行:
EDITOR=vi ;export EDITOR
你必須保證$PATH目錄中有vi編輯器,通過使用which vi來檢查vi所在的目錄,如果沒有找到vi,那麼你必須手動配置一個.
在/home/scada/目錄下有一個腳本test,內容爲:
#!/bin/sh
echo `date` >> /home/scada/11.txt
1. 如何配置腳本每隔1分鐘運行一次?
#調用crontab -e 編輯,編輯內容爲:
0-59 * * * * /home/scada/test
# */2 * * * * /home/scada/text
2. 如何配置腳本每隔5分鐘執行一次?
#調用crontab -e 編輯,編輯內容爲:
0-59/5 * * * * /home/scada/test
3. 配置爲: 0,1 * * * * /home/scada/test是什麼意思?
它表示每小時運行兩次(整點及整點後兩分鐘)
4. 如何在crontab中使用全局變量?
有一個全局變量,在$home/.bash_profile文件中定義。定義爲:
export TESTTMP=/home/scada
在crontab中執行的腳本如何獲取這個變量呢?
把腳本內容改爲:
#!/bin/sh
#filename:test
echo $TESTTMP >> /home/scada/11.txt
配置爲一分鐘運行一次,查看結果。發現文件/home/scada/11.txt中的內容爲空,沒有獲取到$TESTTMP的數據,這是因爲通過調用crontab調用腳本不會包含當前用戶中的各種環境變量的設置,必須在腳本前設置好環境變量,而設置環境變量的方法可以使用source命令。因此正確的腳本調用爲:
#!/bin/sh
#filename:test
#source /home/scada/.bash_profile
#switch the userpath
cd ~
userpath=`pwd`
source ${userpath}/.bash_profile
echo ${TESTTMP} >> /home/scada/11.txt
#echo $TESTTMP >> /home/scada/11.txt #不用打括號圍起來也可以
或者通過crontab -e 編輯調度文件的時候,直接在裏面制定全局變量,如下所示:
TESTTMP=/home/scada
0-59 * * * * /home/scada/test