crontab語法及應用
1:檢視當前使用者的定時任務
[oracle@localhost ~]$ crontab -l
* * * * * /home/oracle/test.sh >/dev/
null
2>&1
2:編輯當前使用者的定時任務
可以在編輯狀態修改、刪除、新增一些定時任務。注釋一般用#
[oracle@localhost ~]$ crontab -e
3:刪除當前使用者的定時任務
[root@localhost ~]# crontab -r
[root@localhost ~]# crontab -l
no crontab for root
4:如下所示,一般crontab檔案裡面的定時任務格式如下所示:
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表示星期
一、以此類推)
第六列 要執行的命令
我們暫且用c1、c2、c3、c4、c5、c6代表這六列,前面五列通過組合方式來決定執行指令碼的頻率,最小頻率為每分鐘執行一次,其中cn可以用 * ; */n ; t1-t2; a,b,c; 四種形式來表示:
當 c1 為 * 時表示每分鐘都要執行指令碼,c2 為 * 時表示每小時都要執行程式,依次類推…..
當 c1 為 t1-t2 時表示從第 t1 分鐘到第 t2 分鐘這段時間內要執行,c2 為 t1-t2 時表示從第 t1 到第 t2 小時都要執行,依次類推….
當 c1 為 /n 時表示每 n 分鐘的時間間隔執行一次,c2 為 /n 表示每隔n小時的間隔執行一次,依次類推…..
當 c1 為 a, b, c,… 時表示第 a, b, c,… 分鐘要執行,c2 為 a, b, c,… 時表示第 a, b, c…個小時要執行,依次類推….
1: 59 23 * * * /home/oracle/scripts/alert_log_archive.sh >/dev/null 2>&1
表示每天23點59分執行指令碼/home/oracle/scripts/alert_log_archive.sh
2: /5 * * * /home/oracle/scripts/monitoring_alert_log.sh >/dev/null 2>&1
表示每5分鐘執行一次指令碼/home/oracle/scripts/monitoring_alert_log.sh
3: 0 20 * * 1-5 mail -s 「****」 [email protected] < /tmp/maildata
周一到周五每天下午 20:00 寄一封信給 [email protected]
關於 >/dev/null 2>&1 的解釋:
0表示鍵盤輸入
1表示標準輸出
2表示錯誤輸出.
我們首先建立test.sh指令碼如下:
vi printdate.sh:
#! /bin/sh
echo
"hello,everybody,now is " `date`
儲存退出
crontab -e
* * * * * /export/home
/fanjm/printdate.sh >> /export/home
/fanjm/printdatelog.txt 2>&1
儲存退出
more printdatelog.txt結果:
hello,everybody,now
ismon
jun 5 14:04
:01cst 2017
hello,everybody,now
ismon
jun 5 14:05
:01cst 2017
hello,everybody,now
ismon
jun 5 14:06
:01cst 2017
hello,everybody,now
ismon
jun 5 14:07
:01cst 2017
hello,everybody,now
ismon
jun 5 14:08
:01cst 2017
hello,everybody,now
ismon
jun 5 14:09
:01cst 2017
hello,everybody,now
ismon
jun 5 14:10
:01cst 2017
hello,everybody,now
ismon
jun 5 14:11
:02cst 2017
hello,everybody,now
ismon
jun 5 14:12
:01cst 2017
hello,everybody,now
ismon
jun 5 14:13
:01cst 2017
hello,everybody,now
ismon
jun 5 14:14
:01cst 2017
hello,everybody,now
ismon
jun 5 14:15
:01cst 2017
hello,everybody,now
ismon
jun 5 14:16
:01cst 2017
hello,everybody,now
ismon
jun 5 14:17
:01cst 2017
hello,everybody,now
ismon
jun 5 14:18
:01cst 2017
hello,everybody,now
ismon
jun 5 14:19
:01cst 2017
hello,everybody,now
ismon
jun 5 14:20
:01cst 2017
**注:2>&1 是將錯誤輸出重定向到標準輸出。 然後將標準輸入重定向到檔案log.txt。
配置定時任務時,需要注意兩個問題:
1: 在shell中設定了必要的環境變數;例如乙個shell指令碼手工執行ok,但是配置成後台作業執行時,獲取不到oracle的環境變數,這是因為crontab環境變數問題,crontab的環境預設情況下並不包含系統中當前使用者的環境。所以,你需要在shell指令碼中新增必要的環境變數的設定
2: 盡量所有的檔案都採用完全路徑方式,避免使用相對路徑。**
Linux linux定時任務crontab
crontab命令的功能是在一定的時間間隔排程一些命令的執行。它的配置檔案是 etc crontab。vim etc crontab etc crontab中每行指定乙個定時任務,其描述格式如下 minute hour daymonth dayofweek commandminute 從0到59的整...
linux定時任務 at定時任務
at命令是一次性定時計畫任務,at的守護程序atd會以後臺模式執行,檢查作業佇列來執行作業。atd守護程序會檢查系統上的乙個特殊目錄來獲取at命令的提交的作業,預設情況下,atd守護程序每60秒檢查一次目錄,有作業時,會檢查作業執行時間,如果時間與當前時間匹配,則執行此作業。注意 at命令是一次性定...
linux定時任務
crontab 設定定時任務 crontab 可以根據分鐘 小時 日期 月份 星期的組合來設定定時任務的自動執行 要使用該服務必須啟動 crond 服務,檢視 crond 服務有沒有啟動,執行命令 servicecrond status 一些任務事例,幫助理解 3020 root back.sh 每...