Posted by : Dylandy Chang 2013年9月6日 星期五

許多人在使用電腦的時候都會有這樣的想法:這台我花了這麼多錢買來的電腦,能不能讓它在一天 24 小時都全力的工作,將 資源的利用度提高到最高 ,這樣花的錢才值得。所以很多人開始觀察使用者如何使用電腦,嘗試著去從使用者的角度來改善資源利用率, 喔,我們發現,在白天上班時間,電腦會被大多數人所使用,資源的利用度很不錯,電腦很繁忙,但是當下班以後,因為公司的人都回家了, 雖然電腦還是持續在運作,但是實際上他並沒有進行產出,若是我們能讓他做些什麼東西,就可以改善、提高資源的利用度,增加產出, 在以前使用 windows 平台的經驗,許多人可能會使用 bat 批次檔來進行處理,然後寫個小程式讓這個批次檔能在準確的時間運作,而在轉到 Linux 平台以後,有些人也會惜慣性的使用類似的方法使用 shell script 加上一個定時執行的小程式來進行批次作業的處理。 事實上,Unix-like 平台提供了一個更方便的方法,讓我們來管理批次作業,那就是cron

因為小弟我是使用 Ubuntu 作為常用的系統,本篇會以 Ubuntu 的角度來討論如何使用 cron 這個服務。 cron 的使用其實很簡單,只要遵守以下的規則,就能將自己的程式批次處理了。 cron 的設定檔一般放在/etc 資料夾下,檔名為 crontab,因為是系統相關設定,所以我們需要使用系統管理員身份執行。
相關格式:

        
# ——分鍾 (0 - 59)
# | ——小時 (0 - 23)
# | | ——日 (1 - 31)
# | | | ——月 (1 - 12)
# | | | | ——星期 (0 - 7)(星期日=0或7)
# | | | | |
# * * * * * 被執行的命令
上面是在 crontab 裏面所使用到的時間格式,需要注意的是,使用*表示任何可能的值,如果在小時的區域裡填入,則代表每個小時執行一次。
特別小心:時間間格需要比程式執行的時間還要長,以免發生資料衝突的問題。

以下為 Ubuntu 預設的 crontab 設定,會進行一些更新方面的確認,以及系統的問題回報。
你可以自由的加入自己的程式,只要依照格式撰寫,並注意時間的部份,就可以了,最後在編輯好這個檔案以後,請重開 cron 服務。
/etc/init.d 輸入sudo service cron restart 將服務重開,即可更新你剛剛 編輯的 crontab 檔案了。

{ 3 意見... read them below or Comment }

  1. 話說時間的設定那個「*」,第一次用真的會搞混XD

    補充下:
    Arch Linux(或說任何以systemd來控管服務的發行版),crontab -e可以叫出純粹由使用者自訂的crontab檔案,然後按照你說的格式編輯進去,最後save,systemctl enable cronie.service。

    回覆刪除
  2. A...小鬼,每次

    sudo /etc/init.d/cron restart

    即可

    至於你的那個code,先stop後沒有東西執行,restart會回傳unknow instance很正常,而沒人stop後再start的啦,都是用restart

    至於

    http://linux.vbird.org/linux_basic/0430cron.php
    還有很多種方式可用就是

    回覆刪除
  3. 唔,更新了,感謝 JC 大大的提醒

    回覆刪除

技術提供:Blogger.

- Copyright © 迪蘭帝的聊天室 -Metrominimalist- Powered by Blogger - Designed by Johanes Djogan -