Linux 和 UNIX 類操作系統(tǒng)包括一個稱為 Cron 的工具,允許你周期性調(diào)度任務(wù)(即命令或 shell 腳本)。cron 會每分鐘定時檢查 /var/spool/cron 目錄中有在 /etc/passwd 帳戶文件中指定用戶名的文件。
執(zhí)行命令時,命令輸出是發(fā)送到該 crontab 的所有者(或者可以在 /etc/crontab,通過 MAILTO 環(huán)境變量中指定用戶)。
crontab 文件(可以通過鍵入 crontab -e
并按 Enter 鍵創(chuàng)建)的格式如下:
crontab條目
因此,如果我們想在每個月第二天上午2:15更新本地文件數(shù)據(jù)庫(用于按名字或通配模式定位文件),我們需要添加以下 crontab 條目:
15022**/bin/updatedb
以上的條目的意思是:”每年每月第二天的凌晨 2:15 運行 /bin/updatedb,無論是周幾”,我想你也猜到了。星號作為通配符。
正如我們前面所提到的,添加一個 cron 任務(wù)后,你可以看到一個名為 root 的文件被添加在 /var/spool/cron。該文件列出了所有的 crond 守護進程應(yīng)該運行的任務(wù):
#ls-l /var/spool/cron
檢查所有cron任務(wù)
在上圖中,顯示當(dāng)前用戶的 crontab 可以使用 cat /var/spool/cron
或
# crontab -l
如果你需要在一個更精細的時間上運行的任務(wù)(例如,一天兩次或每月三次),cron 也可以做到。
例如,每個月1號和15號運行 /my/script 并將輸出導(dǎo)出到 /dev/null (丟棄輸出),您可以添加如下兩個crontab 條目:
01001**/myscript > /dev/null2>&1
010015**/my/script>/dev/null2>&1
不過為了簡單,你可以將他們合并:
01001,15**/my/script>/dev/null2>&1
跟著前面的例子,我們可以在每三個月的第一天的凌晨1:30運行 /my/other/script。
300111,4,7,10*/my/other/script>/dev/null2>&1
但是當(dāng)你必須每隔某分鐘、小時、天或月來重復(fù)某個任務(wù)時,你可以通過所需的頻率來劃分正確的時間。以下與前一個 crontab 條目具有相同的意義:
30011*/3 * /my/other/script>/dev/null2>&1
或者也許你需要在一個固定的頻率或系統(tǒng)啟動后運行某個固定的工作,你可以使用下列五個字符串中的一個字符串來指示你想讓你的任務(wù)計劃工作的確切時間:
@reboot僅系統(tǒng)啟動時運行
@yearly一年一次,類似與000011*
@monthly一月一次,類似與00001**
@weekly一周一次,類似與0000**0
@daily一天一次,類似與0000***
@hourly一小時一次,類似與00****
2015職稱計算機考試書PowerPoint2007中 .. 定價:¥45 優(yōu)惠價:¥42 更多書籍 | |
2015年全國職稱計算機考試教材(2007模 .. 定價:¥225 優(yōu)惠價:¥213 更多書籍 |