crond和crontab調研

1.crond
crond在linux下是一個定時執行工具,可以在無需人工干預的情況下定時地運行任務;
crond文件位於/etc/rc.d/init.d/crond

要設置這個服務在系統啓動的時候自動啓動,在/etc/rc.d/rc.local這個腳本的末尾加上: /sbin/service crond start

要查看linux是否已經安裝crond,使用命令:rpm -qa | grep cron

2.crontab
crontab是用來設置週期性被執行的指令;
crontb文件位於/usr/bin/crontab

命令選項:

  • -u //設定某個用戶的cron服務
  • -l //列出某個用戶cron服務的詳細內容
  • -r //刪除某個用戶的cron服務
  • -e //編輯某個用戶的cron服務

3.工作原理

cron由crond守護進程和一組表(crontab文件)組成。

crond守護進程是在系統啓動時由init進程啓動的,受init進程的監視,如果它不存在了,會被init進程重新啓動。這個守護進程每分鐘喚醒一次,並通過檢查crontab文件判斷需要做什麼。

每個用戶有一個以用戶名命名的crontab文件,存放在/var/spool/cron/crontabs目錄裏。若管理員允許或者禁止其他用戶擁有crontab文件,則應編輯/etc/下面的cron.deny和cron.allow這兩個文件來禁止或允許用戶擁有自己的crontab文件。每一個用戶都可以有自己的crontab文件,但在一個較大的系統中,系統管理員一般會禁止這些文件,而只在整個系統保留一個這樣的文件。

4.命令格式
(1)格式
這裏寫圖片描述

(2)特殊字符
這裏寫圖片描述

5.例子

①每晚的21:30重啓lighttpd
30 21 * * * /usr/local/etc/rc.d/lighttpd restart

②每月1、10、22日的4 : 45重啓lighttpd
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

③每週六、週日的1 : 10重啓lighttpd
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart

④在每天18 : 00至23 : 00之間每隔30分鐘重啓lighttpd
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart

⑤每星期六的11 : 00 pm重啓lighttpd
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart

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

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

⑧每月的4號與每週一到週三的11點重啓lighttpd
0 11 4 * 1-3 /usr/local/etc/rc.d/lighttpd restart

⑨一月一號的4點重啓lighttpd
0 4 1 1 * /usr/local/etc/rc.d/lighttpd restart

也可以將所有設定放入文件file中,使用crontab file設定時程表
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章