crontab 間隔固定時間執行

 

怎樣實現間隔固定時間執行咱們想作的工做,好比每5分中

在linux 咱們能夠這樣實現

*/5 * * * * command

可是在AIX裏面出現錯誤

[code]
"/tmp/crontabEB5gya" 8 lines, 239 characters
A line of the crontab file:
        */5 * * * * /tmp/notice.sh

contains the following error:
        0481-079 Reached a symbol that is not expected.
[/code]
 
能夠這樣實現,也只能這樣實現:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /tmp/notice.sh

由於AIX與Solaris都不支持相似Linux的形式。 
 
 
 
 
 
 

在solaris下crontab -e命令出錯,原來是須要設置export EDITOR=vi,下面是詳細的說明。linux

1.crontab環境介紹
1. cron服務在/etc/init.d/cron
2. 執行文件/usr/sbin/cron
3. cron配置文件在/etc/cron.d
file 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服務啓動,中止
/usr/sbin/cron stop
/usr/sbin/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不支持shell

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. 重啓服務
/usr/sbin/cron stop
中止後ps –ef|grep cron查看是否存在,能夠多執行中止命令
/usr/sbin/cron startvim

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. /usr/sbin/cron start編輯器

1.5. Solaris對於沒有密碼、沒有被啓用、密碼失效的用戶是不執行crontab的ide