Solaris的crontab總結(z)

lwitpub發表於2010-05-13
1.crontab環境介紹
  1.  cron服務在/etc/init.d/cron
  2.  執行檔案/usr/sbin/cron
  3.  cron配置檔案在 /etc/cron.dfile list:.proto,FIFO,at.deny,cron.allow,cron.deny,queuedefs
  4.  cron的連線檔案 /usr/lib/cron/ -> ../../etc/cron.d
  5.  使用者的crontab檔案位置在/usr/spool/cron/crontabs目錄下,以使用者名稱命名的。
2.crontab服務啟動,停止
cd /etc/init.d
./cron stop
./cron start
3.crontab命令說明
crontab –l:列出當前使用者的crontab檔案。
crontab –l username: 列出指定使用者的crontab檔案。(root使用者)
crontab –e:編輯當前使用者的crontab檔案。
crontab –e username: 編輯指定使用者的crontab檔案。(root使用者)
crontab –r: 刪除當前使用者的crontab檔案。
crontab –r username: 刪除指定使用者的crontab檔案。(root使用者)
4.crontab語法說明
使用者crontab檔案的語法格式,每行語句為:* * * * * command,每一行表示一個任務,可以有多行語句。
第一個*欄位:0~59 表示分
第二個*欄位:1~23 表示小時
第三個*欄位:1~31 表示日
第四個*欄位:1~12 表示月份
第五個*欄位:0~6 表示星期(其中0表示星期日)
第五個command欄位:要執行的命令
若要20分鐘執行一次某個任務,可以這樣寫:
0,20,40 * * * * command
若要5分鐘執行一次某個任務,可以這樣寫:
0,5,10,15,20,25,30,35,40,4,50,55 * * * * command
若要每分鐘執行一次某個任務,可以這樣寫:
0-59 * * * * command
solaris下的crontab和linux下不一樣,linux支援
*/5 表示每5分鐘一次
*/20 表示每20分鐘一次
而solaris不支援
 
5.crontab的編輯器設定
如果沒有設定編輯器,crontab –e會呼叫預設的編輯器。
設定編輯器:export EDITOR=vim,然後再呼叫crontab –e。
6.舉例說明
   1  export EDITOR=vim
   2. crontab –e,在檔案裡新增:0-59 * * * * * /export/home/netcool/cron_test.sh
       儲存,退出(:wq)
   3. vi /export/home/netcool/cron_test.sh
     echo “aaa” >> /export/home/netcool/cron_test.log
     chmod a+x /export/home/netcool/cron_test.sh
   4. 重啟服務
   cd /etc/init.d/
   ./cron stop
   停止後ps –ef|grep cron檢視是否存在,可以多執行停止命令
   ./cron start
 
7.Crontab不執行問題的解決辦法
1.1. 確保執行指令碼的路徑正確,最好用全路徑
1.2. 確保環境變數正確
可以在shell裡設定好$HOME/.profile的環境變數。可以在shell裡新增環境變數指令碼,e.g.:
export OMNIBUS_HOME=/opt/netcool/omnibus
1.3. 許可權問題
把當前使用者加到/etc/cron.d/cron.allow,同時確保/etc/cron.d/cron.deny裡沒有當前使用者。如果沒有cron.allow檔案,用root使用者新建此檔案。
1.4. FIFO的問題
    1. 先殺掉cron程式,可以用ps -ef|grep cron 得出id號,kill -9 PID
    2. rm /etc/cron.d/FIFO
    3. ./cron start

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/628922/viewspace-662639/,如需轉載,請註明出處,否則將追究法律責任。

相關文章