close

按此前往linux完整教學目錄

 

 

循環性工作:

欲設定循環性工作,必須先開啟crond這個daemondaemon,是linux系統中提供服務的機制。因linux系統有自己內建的循環性工作,故系統在預設上是開啟crond的。

1. 循環性工作,有分使用者循環性工作系統循環性工作系統循環性工作」的設定檔在/etc/cron或者是/etc/crontab使用者循環性工作的設定檔在/var/spool/cron/crontabs/使用者帳號,這個檔案一般只有root才有權看到,而若使用者從未在系統中使用過crontab,則這個檔案不會被建立。

循環性工作設定檔有其格式,為:

設定列

工作列

舉實例說明,如筆者自行建立的設定檔,其內容為:

#以下是設定列

SHELL=/bin/bash

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

MAILTO=user

HOME=/home/user

#以下是工作列

05 * * * * mkdir ~/DIR

20 10 5 5 * mkdir ~/HHH

本格式,也是一般最常用的格式。

井字號#之後的文字是註解,對循環性工作的設定毫無影響。

(1) 其中,設定列是在設定工作環境:

SHELL:表示執行工作時要用的shell

PATH:其中的目錄,是可以用來執行循環性工作之指令的所在目錄。如果沒有寫PATH,則工作列中的指令必須用命令執行檔。也就是說mkdir之類的命令,系統會因看不懂而無法執行,必須寫成/bin/mkdir這種完整的命令執行檔路徑名。

MAILTO是當系統循環性工作有標準輸出或標準錯誤輸出時,會將這些輸出用mail的方式寄給誰。

HOME:命令執行者的家目錄。

(2) 命令列,也就是循環性工作的實際工作內容,其寫法為:

星期 命令

(2-1) :正整數,其值為0~59

(2-2) :正整數,其值為0~23

(2-3) :正整數,其值為1~31

(2-4) :正整數,其值為1~12

(2-5) 星期:正整數,其值為0~60代表星期天,1代表星期一,以此類推。

(2-6) 命令:也就是實際執行的命令。若要執行規模較大的循環性工作,一般做法是將工作內容寫在一個shell script中,而命令,就是執行此shell script。此外,若命令中牽涉到檔案或目錄的操作,則路徑的形式最好是絕對路徑。

(重要!!)星期的值除了正整數外,還有以下的寫法:

(-1) *:星號,類似萬用字元的概念,代表「任何允許的值」。如:

05 * * * * 命令

表示在每月、每天、每小時的05分,執行一次命令

(-2) 值一,值二,值三:代表「值的聯集」。如:

05,10,15,20 * * * * 命令

表示在每月、每天、每小時的05分、10分、15分、20分,執行一次命令

(-3) 值一-值二:虛線,代表「值的範圍」。如:

05-15 * * * * 命令

表示在每月、每天、每小時的05分到15分,執行一次命令。執行時間的最小間隔為一分鐘。

(-3)* /:代表「每隔一次值」。如:

*/10 * * * * 命令

表示每隔10分鐘,執行一次命令

(3) 注意事項:

(3-1) 循環性工作執行失敗的主要原因有:操作權限不符、輸入的命令有誤、PATH沒有設定

(3-2) 星期的用法要注意,如:

00 12 * * 5 命令:表示每個星期五的12:00執行一次命令

00 12 3 5 * 命令:表示每年三月五日的12:00執行一次命令

00 12 3 5 5 命令:表示每年的三月五日的12:00、以及每個星期五的12:00執行一次命令並不表示「若每年的三月五日為星期五時,才在12:00執行一次命令,勿誤解。

(3-3) 盡量勿讓系統在同一分鐘執行大量工作,最好是平均分散在不同的分鐘上執行工作。以免系統過忙碌而導致錯誤。

 

 

上一篇:linux 例行性工作

下一篇:linux crontab

arrow
arrow
    創作者介紹
    創作者 埃伯 的頭像
    埃伯

    程式語言教學

    埃伯 發表在 痞客邦 留言(0) 人氣()