在solaris下crontab 定時任務

湖湘文化發表於2013-12-03
 

solariscrontab -e

solariscrontab -e命令出錯,原來是需要設定export EDITOR=vi,下面是詳細的說明。

 

1.    crontab環境介紹
1
. cron服務在/etc/init.d/cron
2).
執行檔案/usr/sbin/cron
3). cron
配置檔案在/etc/cron.d
file list
.protoFIFOat.denycron.allowcron.denyqueuedefs
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,每一行表示一個任務,可以有多行語句。
第一個*欄位:059 表示分
第二個*欄位:123 表示小時
第三個*欄位:131 表示日
第四個*欄位:112 表示月份
第五個*欄位:06 表示星期(其中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支援
*/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不執行問題的解決辦法
7.1.
確保執行指令碼的路徑正確,最好用全路徑
7.2.
確保環境變數正確
可以在shell裡設定好$HOME/.profile的環境變數。可以在shell裡新增環境變數指令碼,e.g.:
export OMNIBUS_HOME=/opt/netcool/omnibus
7.3.
許可權問題
把當前使用者加到/etc/cron.d/cron.allow,同時確保/etc/cron.d/cron.deny裡沒有當前使用者。如果沒有cron.allow檔案,用root使用者新建此檔案。
7.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/21256317/viewspace-1061935/,如需轉載,請註明出處,否則將追究法律責任。

相關文章