crontab使用

這個東西以前一直都知道,不過真沒實際使用.現在希望他每天幫我去同步源.所以就深入學習一下這個


yum install crontabs
注意啊,是crontabs

不過現在的系統,默認是已經安裝好,默認是不啟動,你只需要啟動該服務就可以.
/etc/init.d/crond start
chkconfig crond on
這個時候,你就可以使用–l 參數來查看當前用戶的計劃任務。
# crontab -l
30 21 * * * /root/ubuntu_mirror.sh

添加計劃任務,
crontab -e

就可以進入vi編輯器.比較簡單.

下面這些例子,倒是很全面,直接參考就基本可以滿足我的需求.

 

http://www.cppblog.com/API/archive/2012/03/28/169237.html

參數:
-e編輯該用戶的計時器設置。
-l列出該用戶的計時器設置。
-r刪除該用戶的計時器設置。
-u<用戶名稱>指定要設定計時器的用戶名稱。

2,crontab 格式

基本格式:
* * * * * command 
分時日月週命令

第1列表示分鐘1~59每分鐘用*或者*/1表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31 
第4列表示月份1~12 
第5列標識號星期0~6(0表示星期天)
第6列要運行的命令crontab特殊的符號說明: “*”代表所有的取值範圍內的數字。特別要注意哦!“/”代表每的意思,如”*/5″表示每5個單位“-”代表從某個數字到某個數字“,”分散的數字

crontab文件的一些例子:

30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重啟apache。

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、 10、22日的4 : 45重啟apache。

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每週六、週日的1 : 10重啟apache。

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之間每隔30分鐘重啟apache。

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重啟apache。

* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小時重啟apache

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11點到早上7點之間,每隔一小時重啟apache

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4號與每週一到週三的11點重啟apache

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一號的4點重啟apache

*/30 * * * * /usr/sbin/ntpdate 210.72.145.44
每半小時同步一下時間

——————————– 如何查看crontab的日誌記錄——————————————————–

昨天crontab中的同步任務沒有執行,不知道是什麼原因沒有執行,貌似任務hang住了,想查詢一下crontab到底問題出在哪裡,或者hang在了什麼地方。
1. linux 
看/var/log/cron這個文件就可以,可以用tail -f /var/log/cron觀察
2. unix 
在/var/spool/cron/tmp文件中,有croutXXX001864的tmp文件,tail這些文件就可以看到正在執行的任務了。
3. mail任務
在/var/spool/mail/root文件中,有crontab執行日誌的記錄,用tail -f /var/spool/mail/root即可查看最近的crontab執行情況。

留言

這個網誌中的熱門文章

Json概述以及python對json的相關操作

遠程控制管理工具ipmitool

從Kubernetes到Cloud Native——雲原生應用之路