Linux 例行性命令的建立
最近更新日期:2001/11/04
前言
使用 crontab 指令
修改 /etc/crontab 檔案

前言
假如你每一天早上 8:00 鐘要伺服器連接上音響,並啟動音樂來喚你起床;而中午 12:00 希望 Linux 可以發一封信到你的郵件信箱,提醒你可以去吃午餐了;另外,在每年的你愛人的生日的前一天,先發封信提醒你,以免忘記這麼重要的一天.....要怎樣達到這個目的呢?其實是很簡單的,只要使用 crontab 就可以啦!
其實,Linux 本身在背景下的工作可是很多的,尤其是網路開放的情況下,建立與取消連線、MySQL 資料庫的即時更新、以及一些例行的系統指令,例如釋放記憶體的工作等等。由於例行的工作非常的多,實在不可能每天都要管理員來手動輸入吧!因此我們就需要瞭解一下 Linux 是如何建立例行性工作的!
crontab 基本上有兩種建立例行性命令的方式,一種是針對所有使用者,可以藉由 crontab -e 的指令來下達工作排程;另一種是針對系統管理員,你可以直接藉由修改 /etc/crontab 這一個文字檔,來直接排程!那 crontab 的主要命令要如何執行呢?待鳥哥慢慢道來!

使用 crontab 指令
建立個人用戶的例行性命令:
假如你需要在每天的正午 12:00 發一封信給你自己,而且信的內容已經寫好了,那要怎樣作呢?而且,另一個假設是,你在 Linux Server 中的權限僅止於一般使用者,並不是 root (管理員)身份,那要怎樣設定你的例行性命令呢?哈哈!那就使用 crontab 這個指令吧!你只要執行 crontab -e 就可以進入 vi 的編輯畫面來編輯你的例行性命令說!
 
[vbird@tsai vbird]# crontab -e

0 12 * * * mail vbird@tsai.adsldns.org < /home/vbird/test.txt

在上面的例子中,輸入 crontab -e 時,會出現一個 vi 畫面,然後你在 vi 畫面中輸入上面的一行字,之後按 :wq 儲存後離開!即可完成編輯!容易吧!那上面那一行字代表什麼意義呢?你可以看到,在真正執行命令之前(就是 mail vbird@tsai.adsldns.org < /home/vbird/test.txt )總共有五個數字,這五個數字分別代表:
分(0-59)
小時(0-23)
日期(1-31)
月份(1-12)
週(0-6)
數字代表的意義 分鐘 小時 日期 月份
範圍 0-59 0-23 1-31 1-12 0-6 (0為星期天)
另外,如果是『 *  』的時候,代表所有數字都適用的意思。所以,你就可以知道我上面那一行寫的意義為何了!那就是不論何月、何日、星期幾的 12 點 0 分時,執行 mail vbird@tsai.adsldns.org < /home/vbird/test.txt 這個命令!還不瞭解?沒關係,我們這裡作幾個例子! 察看個人用戶的例行性命令:
如果你一直使用 crontab 這個方法來下達例行性命令的話,有可能有一些指令你會忘記了!那怎辦呢?沒關係,只要下達:
crontab -l (註: -l 是 L 的小寫喔!)
就可以知道你曾經下達的 crontab 的命令囉!
刪除例行性命令:
這個更簡單,使用 crontab -r 就刪除了!

修改 /etc/crontab 檔案 2002/ 01/01以來統計人數