Linux crond服務介紹
crond服務是Linux系統預設會安裝的服務工具,與windows下的計劃任務類似,用來周期性的執行某種任務或等待處理某些事件的一個守護程序,并且啟動主機會自動預設啟動crond程序,crond程序會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。
crond服務可以實作系統周期性所要執行的工作,比如:資料庫周期性備份、重要檔案異機備份、資料庫過期歸檔日志清理、日志清理等等。
crond服務常用的啟停、重新開機指令
#啟動定時任務服務
/sbin/service crond start
#關閉定時任務服務
/sbin/service crond stop
#重新開機定時任務服務
/sbin/service crond restart
#重新載入配置
/sbin/service crond reload
#檢視定時任務服務狀态
/sbin/service crond status
編寫測試shell腳本
建立一個空腳本檔案授權讀寫以及可執行權限
#建立一個空腳本檔案
[[email protected] orabackup]# touch backtest.sh
#授權讀寫以及可執行權限
[[email protected] orabackup]# chmod 755 backtest.sh
[[email protected] orabackup]# ll
-rwxr-xr-x 1 oracle oinstall 0 11-15 10:28 backtest.sh
編輯測試腳本
[[email protected] orabackup]# vi backtest.sh
#!/bin/sh
echo .........................start.........................
echo 孑木文學的部落格:https://blog.csdn.net/weixin_39699061
echo .........................stop..........................
~
~
~
"backtest.sh" 6L, 193C written
測試腳本執行
[[email protected] orabackup]# ./backtest.sh
.........................start.........................
孑木文學的部落格:https://blog.csdn.net/weixin_39699061
.........................stop..........................
[[email protected] orabackup]#
crontab指令建立定時任務
crontab指令
crontab [-u username] #省略使用者表表示操作目前使用者的crontab
-e #(編輯工作表)
-l #(列出工作表裡的指令)
-r #(删除工作作)
切換到Oracle使用者建立定時任務
#切換到Oracle使用者建立定時任務(每天淩晨1點執行定時任務)
[[email protected] ~]# su - oracle
[[email protected] ~]$ crontab -e
00 1 * * * /backup/orabackup/backtest.sh >> /backup/orabackup/bak.out 2>&1
~
~
~
~
~
關于cron表達式可以參考 http://cron.qqe2.com,如下圖所示:
以下舉例比較常見的表達式
0 0 1 * * ? #每天淩晨1點執行
0 0 1,13 * * ? #每天淩晨1點以及下午1點執行
0 0 0 1 * ? * #每月1日的淩晨執行
0 0 1 1 * ? * #每月1日的淩晨1點執行
0 0 4 L * ? #每月最後一天淩晨4點執行
0 15 10 15 * ? #每月15日上午10:15觸發
檢視已建立的定時任務
#檢視已建立的定時任務
[[email protected] ~]$ crontab -l
00 1 * * * /backup/orabackup/backtest.sh >> /backup/orabackup/bak.out 2>&1
定時任務服務重新開機
#執行定時任務服務重新開機
[[email protected] ~]$ /sbin/service crond restart
rm: 無法删除 “/var/run/crond.pid”: 權限不夠 [失敗]
啟動 crond:cardmgr 已經在運作 [失敗]
#oracle使用者沒有權限執行該指令,退出Oracle使用者到root使用者執行定時任務服務重新開機
[[email protected] ~]$ exit
logout
[[email protected] ~]# /sbin/service crond restart
停止 crond: [确定]
啟動 crond: [确定]
[[email protected] ~]#
檢視定時任務服務狀态
[[email protected] ~]# /sbin/service crond status
crond (pid 24844) 正在運作...
[[email protected] ~]#
定時任務實作資料庫備份
參看部落格:Linux定時任務實作Oracle資料庫每天進行全庫備份