Cronjob – 快速入門

Cronjob – 快速入門

Cron 是UNIX, SOLARIS,LINUX下的一個十分有用的工具。 通過Cron腳本能使計劃任務定期地在系統後臺自動運行。這種計劃任務在UNIX, SOLARIS, LINUX下術語爲cron jobs。 Crontab (CRON 表)則是用來記錄在特定時間運行的CRON的一個腳本文件。

Crontab歸結爲以下幾點特性:

1.      Crontab約束

2.       Crontab命令

3.       Crontab文件語法

4.       Crontab示例

5.       Crontab環境設置

6.      郵件

7.      日誌文件

8.      其它

1.      Crontab約束

當用戶名記錄在文件/usr/lib/cron/cron.allow時,該用戶的crontab有效。當/usr/lib/cron/cron.allow 文件不存在時,用戶名沒被記錄在/usr/lib/cron/cron.deny文件中,該用戶的crontab也有效。當只存在/usr/lib/cron/cron.deny且爲空時,所有的用戶都可使用crontab。當前兩個文件都不存在時,只有root用戶可以使用crontab。 Deny或allow記錄以每行一個用戶名的形式記錄信息。

2.      Crontab 命令

export EDITOR=vi ;爲crontab文件指定一個編輯器。 

crontab  -e  編輯該用戶的crontab,當指定crontab  不存在時新建。  

crontab  -l  列出該用戶的crontab。  

crontab  -r  刪除該用戶的crontab。  

crontab  -u<用戶名稱>  指定要設定crontab的用戶名稱。

crontab –v 顯示上一次編輯的時間(只在某些操作系統上可用)

3.       Crontab 文件

Crontab語法一個crontab文件用五個段來定義:天,日期和時間,和一個要定期執行的命令代碼。

*     *   *   *    *  command to be executed
-     -    -    -    -
|     |     |     |     |
|     |     |     |     +----- day of week (0 - 6) (Sunday=0)
|     |     |     +------- month (1 - 12)
|     |     +--------- day of month (1 - 31)
|     +----------- hour (0 - 23)
+------------- min (0 - 59)
 

所有的值都必須在相應的範圍之內,否則視爲無效。在填值區域內可以是*也可以是以”,”分隔的一組值。值可以是一個數據也可以是用連接符連起來的兩個數(表示範圍)。注:日期的格式可以是星期,也可以是一個月中的天。假如兩個都有值,則在這兩個時間都會執行。

4. Crontab 實例 

下面是crontab文件中的一行,意思是在每天下午6:30中刪除臨時文件(臨時文件存放在/home/someuser/tmp)。 30     18     *     *     *         rm /home/someuser/tmp/*

以下我們改變參數的值使其在不同的時間運行:如下表

min

hour

day/month

month

day/week

 Execution time

30

0

1

1,6,12

*

-- 00:30 Hrs  on 1st of Jan, June & Dec.

:

0

20

*

10

1-5

--8.00 PM every weekday (Mon-Fri) only in Oct.

:

0

0

1,10,15

*

*

-- midnight on 1st ,10th & 15th of month

:

5,10

0

10

*

1

-- At 12.05,12.10 every Monday & on 10th of every month

:

注:要是無意間鍵入了沒帶參數的crontab 命令,別Control-d退出,這樣會刪掉所有的cronjob。 應該Control-c退出.

 5. Crontab 環境設置

Cron其實是在shell(/usr/bin/sh).後臺引用用戶程序的命令。

 Cron默認的shell環境是:

HOME=user's-home-directory

LOGNAME=user's-login-id

PATH=/usr/bin:/usr/sbin:.

SHELL=/usr/bin/sh  

用戶希望自己的配置文件在表或者腳本的入口直接執行。

 6. 禁用郵件默認的cronjobs在執行任務時會給用戶發一封郵件。如果您不需要的話可以通過以下命令關閉。 >/dev/null 2>&1

 7.    生成日誌文件保存cronjobs日誌只需作如下設置就可以

30 18  *    *   *    rm /home/someuser/tmp/* > /home/someuser/cronlogs/clean_tmp_dir.log “/home/someuser/cronlogs/clean_tmp_dir.log”爲日誌文件保存的絕對路徑    

 

 轉譯英文原文來自

 Copyright © 2000-2007 , Adminschoice.com . All Rights Reserved. Site Comment/Suggestions   Privacy

附上原文地址

http://www.adminschoice.com/docs/crontab.htm

 

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