Centos7部署crond

CRONTAB語法及應(yīng)用

1:查看當(dāng)前用戶的定時任務(wù)

[oracle@localhost ~]$ crontab -l

* * * * * /home/oracle/test.sh >/dev/null 2>&1

2:編輯當(dāng)前用戶的定時任務(wù)

可以在編輯狀態(tài)修改、刪除、新增一些定時任務(wù)。注釋一般用#

[oracle@localhost ~]$ crontab -e

3:刪除當(dāng)前用戶的定時任務(wù)

[root@localhost ~]# crontab -r

[root@localhost ~]# crontab -l

no crontab for root

4:

如下所示,一般crontab文件里面的定時任務(wù)格式如下所示:

59 23 * * * /home/oracle/scripts/alert_log_archive.sh >/dev/null 2>&1

crontab 文件中每個條目中各個域的意義和格式:

第一列 分鐘: 1——59

第二列 小時: 1——23(0表示子夜)

第三列 日 : 1——31

第四列 月 : 1——12

第五列 星期: 星期0——6(0表示星期天,1表示星期一、以此類推)

第六列 要運(yùn)行的命令

我們暫且用C1、C2、C3、C4、C5、C6代表這六列,前面五列通過組合方式來決定執(zhí)行腳本的頻率,最小頻率為每分鐘執(zhí)行一次,其中Cn可以用 * ; */n ; T1-T2; a,b,c; 四種形式來表示:

當(dāng) C1 為 * 時表示每分鐘都要執(zhí)行腳本,C2 為 * 時表示每小時都要執(zhí)行程式,依次類推.....

當(dāng) C1 為 T1-T2 時表示從第 T1 分鐘到第 T2 分鐘這段時間內(nèi)要執(zhí)行,C2 為 T1-T2 時表示從第 T1 到第 T2 小時都要執(zhí)行,依次類推....

當(dāng) C1 為 */n 時表示每 n 分鐘的時間間隔執(zhí)行一次,C2 為 */n 表示每隔n小時的間隔執(zhí)行一次,依次類推.....

當(dāng) C1 為 a, b, c,... 時表示第 a, b, c,... 分鐘要執(zhí)行,C2 為 a, b, c,... 時表示第 a, b, c...個小時要執(zhí)行,依次類推....

下面列舉幾個例子供大家參考

1: 59 23 * * * /home/oracle/scripts/alert_log_archive.sh >/dev/null 2>&1

表示每天23點(diǎn)59分執(zhí)行腳本/home/oracle/scripts/alert_log_archive.sh

2: */5 * * * * /home/oracle/scripts/monitoring_alert_log.sh >/dev/null 2>&1

表示每5分鐘執(zhí)行一次腳本/home/oracle/scripts/monitoring_alert_log.sh

3: 0 20 * * 1-5 mail -s "**********" kerry@domain.name < /tmp/maildata

周一到周五每天下午 20:00 寄一封信給 kerry@domain.name

..............................................

關(guān)于 >/dev/null 2>&1 的解釋:

0表示鍵盤輸入

1表示標(biāo)準(zhǔn)輸出

2表示錯誤輸出.

我們首先創(chuàng)建test.sh腳本如下:

#! /bin/sh

echo "hello, everybody, now is " `date`

date >> test.txt

然后添加作業(yè)

* * * * * /home/oracle/test.sh >/home/oracle/log.txt & 默認(rèn)值為1,即和下面命令一致

* * * * * /home/oracle/test.sh 1>/home/oracle/log.txt &

* * * * * /home/oracle/test.sh 2>/home/oracle/log.txt &

* * * * * /home/oracle/test.sh 2>/home/oracle/log.txt 2>&1 &

1,2將tesh.sh 命令輸出重定向到log.txt, 即輸出內(nèi)容不打印到屏幕上,而是輸出到log.txt文件中。如果你需要追加而不是覆蓋,可以用 >>代替>

2>&1 是將錯誤輸出重定向到標(biāo)準(zhǔn)輸出。 然后將標(biāo)準(zhǔn)輸入重定向到文件log.txt。

&1 表示的是文件描述1,表示標(biāo)準(zhǔn)輸出,如果這里少了&就成了數(shù)字1,就表示重定向到文件1。

注意事項(xiàng):

配置定時任務(wù)時,需要注意兩個問題:

1: 在SHELL中設(shè)置了必要的環(huán)境變量;例如一個shell腳本手工執(zhí)行OK,但是配置成后臺作業(yè)執(zhí)行時,獲取不到ORACLE的環(huán)境變量,這是因?yàn)閏rontab環(huán)境變量問題,Crontab的環(huán)境默認(rèn)情況下并不包含系統(tǒng)中當(dāng)前用戶的環(huán)境。所以,你需要在shell腳本中添加必要的環(huán)境變量的設(shè)置

2: 盡量所有的文件都采用完全路徑方式,避免使用相對路徑。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容