之前爲了做數據庫備份,瞭解了一些關於crontab的知識,現在將其總結一下。
一、什麼是crontab?(以下參考百度)
crond是linux下用來週期性的執行某種任務或等待處理某些事件的一個守護進程,與windows下的計劃任務類似,當安裝完成操作系統後,默認會安裝此服務工具,並且會自動啓動crond進程,crond進程每分鐘會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。
二、crond服務
安裝crontab:
yum install crontabs
服務操作說明:
/sbin/service crond start //啓動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啓服務
/sbin/service crond reload //重新載入配置
查看crontab服務狀態:
service crond status
手動啓動crontab服務:
service crond start
查看crontab服務是否已設置爲開機啓動,執行命令:
ntsysv
加入開機自動啓動:
chkconfig –level 35 crond on
三、常用方法:
1). 創建一個新的crontab文件
創建一個名爲 cron的文件,其中是用戶名,例如, chensmcron。在該文件中加入如下的內容。
# (put your own initials here)echo the date to the console every
# 15minutes between 6pm and 6am
0,15,30,45 18-06 * * * /bin/echo 'hello world'
保存並退出。確信前面5個域用空格分隔。
$ crontab chensmcron
在上面的例子中,系統將每隔1 5分鐘向終端輸出一次“hello world”,關於crontab格式,我在某個博客裏看到了一張好用(好記)的圖:
這裏就不過多贅述格式的問題
2). 列出crontab文件
爲了列出crontab文件,可以用:
$ crontab -l
3). 編輯crontab文件
$ crontab -e
此處需要注意,可能需要在E D I TO R環境變量設置,大多數默認設置爲vi,如果沒有設置需要自行設置環境變量。
編輯$ HOME目錄下的. profile文件,在其中加入這樣一行:
EDITOR=vi; export EDITOR
4). 刪除crontab文件
$ crontab -r
5). 注意事項
新創建的cron job,可能不會馬上執行,需要過幾分鐘才執行。如果重啓cron則馬上執行。
當crontab突然失效時,可以嘗試/etc/init.d/crond restart解決問題。或者查看日誌看某個job有沒有執行/報錯tail -f /var/log/cron。
千萬別亂運行crontab -r。它從crontab目錄(/var/spool/cron)中刪除用戶的Crontab文件。刪除了該用戶的所有crontab都沒了,crontab文件夾有T文件屬性,感興趣可以去了解一下哈哈。
在crontab中%是有特殊含義的,表示換行的意思。如果要用的話必須進行轉義\%,如經常用的date ‘+%Y%m%d’在crontab裏是不會執行的,應該換成date ‘+\%Y\%m\%d’。