網路城邦
上一篇 回創作列表 下一篇   字體:
Linux Crontab...
2013/05/13 14:27:47瀏覽1254|回應0|推薦1

今天在寫crontab發現,有些腦袋轉不過來,不過透過鳥哥網站的講解,及網路上找到的分享,終於有種恍然大悟的感覺。

crontab的常用例子 :

#每天早上7点执行一次 /bin/ls :
0 7 * * * /bin/ls

#每天早上6点10分
10 6 * * * date

#每两个小时
0 */2 * * * date

#晚上11点到早上8点之间每两个小时,早上8点
0 23-7/2,8 * * * date

#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * mon-wed date

#1月份日早上4点
0 4 1 jan * date

linux系统的WEB服务器管理员经常用到crontab的例子 :

#在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup

#每晚的21:30重启apache。
30 21 * * * /etc/init.d/apache2 restart

#每月1、10、22日的4 : 45重启apache
45 4 1,10,22 * * /etc/init.d/apache2 restart

#每周六、周日的1 : 10重启apache。
10 1 * * 6,0 /etc/init.d/apache2 restart

#在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0,30 18-23 * * * /etc/init.d/apache2 restart

#每星期六的11 : 00 pm重启apache。
0 23 * * 6 /etc/init.d/apache2 restart

#每一小时重启apache
* */1 * * * /etc/init.d/apache2 restart

#晚上11点到早上7点之间,每隔一小时重启apache
* 23-7/1 * * * /etc/init.d/apache2 restart

#每月的4号与每周一到周三的11点重启apache
0 11 4 * mon-wed /etc/init.d/apache2 restart

#1月1日的4点重启apache
0 4 1 jan * /etc/init.d/apache2 restart

================以下是鳥哥網站資訊============

[root@test /root]# vi /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01  * * * * root    run-parts /etc/cron.hourly   <==每小時執行的工作
02  4 * * * root    run-parts /etc/cron.daily   <==每天 執行的工作
22  4 * * 0 root    run-parts /etc/cron.weekly  <==每星期執行的工作
42  4 1 * * root    run-parts /etc/cron.monthly  <==每個月執行的工作
分 時 日 月 週 使用者    參數     指令


數字代表的意義
分鐘
小時
日期
月份
範圍
0-59
0-23
1-31
1-12
0-6 (0為星期天)

另外,如果是『 *  』的時候,代表所有數字都適用的意思。所以,你就可以知道我上面那一行寫的意義為何了!那就是『不論何月、何日、星期幾的 12 點 0 分時,執行 mail test < /home/test/test.txt 這個命令』!還不瞭解?沒關係,我們這裡作幾個例子!

    • MAILTO=root:是說,當 /etc/crontab 這個檔案中的例行性命令發生錯誤時,會將錯誤訊息或者是螢幕顯示的訊息傳給誰?由於 root 並無法在用戶端中收信,因此,我通常都將這個 e-mail 改成自己的帳號,好讓我隨時瞭解系統的狀況!
    • 01 * * * * root run-parts /etc/cron.hourly:在註解符號 #run-parts 這一行以後的命令,我們可以發現,五個數字後面接的是 root 喔!沒錯,這一行代表的是『執行的層級為 root 身份』當然囉,你也可以將這一行改寫成其他的身份哩!而 run-parts 代表後面接的 /etc/cron.hourly 是『一個目錄內(/etc/cron.hourly)的所有可執行檔』,這也就是說,個小時的 01 分,系統會以 root 層級的使用者去 /etc/cron.hourly 這個目錄下執行所有可以執行的檔案!後面的三行也都是類似的意思!你可以到 /etc/ 底下去看看,系統本來就預設了這四個目錄了!你可以將每天需要執行的命令直接寫到 /etc/cron.daily 即可,還不需要使用到 crontab -e 的程式呢!方便吧!
        注意:基本上 /etc/crontab 裡頭支援兩種下達指令的方式,一種是直接以 指令型態 下達,一種則是以『目錄規劃』來下達;
          • 指令型態

01 * * * * test mail -s test test < /home/test/test.txt
使用者是 test, 且在每個小時執行一次指令 mail ...
          • 目錄規劃

*/5 * * * * root run-parts /root/runcron
建立一個 /root/runcron 的目錄,將要每隔五分鐘執行的『可執行檔』都寫到該目錄下,就可以讓系統每五分鐘執行一次該目錄下的所有可執行檔。
    這樣就可以曉得 run-parts 的用意了吧!此外,與 crontab -e 規劃當中最不相同的就是多了一個『使用者層級』的概念,通常我們都是以 root 的角度來規劃例行性命令,但是總有不需要 root 的指令吧!就可以使用這個層級來規範該程序的使用者屬於誰囉!
( 知識學習隨堂筆記 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=lazybone1981&aid=7618305