分享
 
 
 

redhat 9.0 中任务自动执行的实现方式

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

注:最近要在 redhat 9.0 上用 crontab实现任务的自动执行,搜索了这篇文章,讲的还是很详细。原文在http://www.hk.redhat.com/docs/manuals/linux/RHL-9-Manual-TW/custom-guide/index.html

第 28章 自動工作排程管理

在 Linux 中,可以設定系統的工作在一個指定的時間、日期或當系統平均負載低於指定的數據時自動執行。 Red Hat Linux 已預先設定好執行重要的系統工作以保持系統的更新,例如由 locate 指令使用的 slocate 資料庫是每日更新的。 系統管理員可以使用自動的工作管理來執行定期的備份、監視系統與執行自訂的程式碼等等。

Red Hat Linux 中含有四個自動工作管理程式: cron、anacron、at 以及 batch。

28.1. Cron

Cron 是一種系統程式(daemon),它可以依據所設定的時間、日期、月份、星期幾以及星期的結合來排程重覆性工作的執行。

Cron 假設系統是在持續開機的情況下,假如在工作排定的時間,系統沒有開機,該工作將不會被執行。 如要以時間的週期而不是確切的時間來設定工作的話,請參考 28.2 節。 如要排定僅執行一次的工作,請參考 28.3 節

如要使用 cron 的服務,您必須要安裝 vixie-cron RPM 套件,而且 crond 的服務必須在執行中。 要查看該套件是否已安裝,請使用 rpm -q vixie-cron 指令; 要查看服務是否在執行中,請使用 /sbin/service crond status 指令。

28.1.1. 設定 Cron 的工作排程

cron 的主要設定檔案 /etc/crontab 包含了以下這幾行:

SHELL=/bin/bash

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

MAILTO=root

HOME=/

# run-parts

01 * * * * root run-parts /etc/cron.hourly

02 4 * * * root run-parts /etc/cron.daily

22 4 * * 0 root run-parts /etc/cron.weekly

42 4 1 * * root run-parts /etc/cron.monthly

一開始的四行是使用來設定 cron 工作要執行之環境的變數,例如 SHELL 變數的值將告訴系統要使用那一個 shell 環境(在此為 bash shell),而 PATH 變數則定義要用來執行指令的路徑。 cron 工作的輸出將會以電子郵件寄到 MAILTO 變數所定義的使用者名稱,假如 MAILTO 變數定義為一個空的字串 (MAILTO=""),將不會傳送任何的電子郵件。 HOME 變數可用來設定執行指令或程式碼時要使用的家目錄。

在 /etc/crontab 檔案中的每一行都代表一項工作,而且都有相同的格式:

分 時 日期 月份 星期幾 指令

· 分 — 從 0 到 59 的任何整數

· 時 — 從 0 到 23 的任何整數

· 日期 — 從 1 到 31 的任何整數(假如有指定月份的話,必須是一個有效的日期)

· 月份 — 從 1 到 12 的任何整數(或者是月份名稱的縮寫,如 jan、feb 等等)

· 星期幾 — 從 0 到 7 的任何整數,0 或 7 代表星期日(或者是縮寫名稱,如 sun、mon 等等)

· 指令 — 要執行的指令(這裡的指令可以是一個例如 ls /proc >> /tmp/proc 的指令或用來執行您所撰寫之程式碼的指令。)

對於以上的任何數值,可以使用一個星號(*)來指定所有有效的數值,例如在月份的一個星號代表在其他數值的範圍內每月執行該指令。

整數之間的一個引號(-)代表整數的一個範圍,例如 1-4 代表整數 1, 2, 3 與 4。

以逗號(,)分隔開的一系列數值代表一個清單,例如 3, 4, 6, 8 代表這四個特定的整數。

斜線符號(/)用來代表時間間隔的數值,只要在一個數值範圍之後加上 /<整數> 即可在該範圍內跳過該整數所指定的數值,例如 0-59/2 在分鐘的欄位中可用來定義每隔兩分鐘執行一次工作。 間隔的數值也可以使用一個星號,如在月份欄位的數值 */3 可以使用來每三個月執行一次工作。

任何以井號(#)開頭的行都是註解,並且都不會被執行。

如您所看到的 /etc/crontab 檔案,它使用 run-parts 程式碼來分別執行 /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly 與 /etc/cron.monthly 目錄中以每小時、每天、每星期或每月為基礎的程式碼。 這些目錄中的檔案應該都是 shell 程式碼。

假如一個 cron 的工作需要在預計的時間執行,而不是以每小時、每天、每星期或每月為基礎,可以將它增加至 /etc/cron.d 目錄中,在這個目錄中的所有檔案都使用與 /etc/crontab 檔案中相同的語法,請參考 範例 28-1 以取得相關範例。

# record the memory usage of the system every monday

# at 3:30AM in the file /tmp/meminfo

30 3 * * mon cat /proc/meminfo >> /tmp/meminfo

# run custom script the first day of every month at 4:10AM

10 4 1 * * /root/scripts/backup.sh

範例 28-1. Crontab 的範例

root 之外的使用者可以使用 crontab 工具來設定 cron 的工作,所有使用者定義的 crontabs 都儲存在 /var/spool/cron 目錄中,並且由建立它們的使用者之使用者名稱來執行。 如要以一個使用者來建立一個 crontab,請以該使用者登入並輸入 crontab -e 指令以使用 VISUAL 或 EDITOR 環境變數所指定的編輯器來編輯使用者的 crontab。 這個檔案使用與 /etc/crontab 檔案相同的格式。 在儲存 crontab 所作的變更後,該 crontab 會依據使用者名稱儲存起來,並寫入到 /var/spool/cron/username 檔案中。

cron 系統程式會在每一分鐘檢查 /etc/crontab 檔案、/etc/cron.d/ 與 /var/spool/cron 目錄是否有任何的變更,假如有任何的變更,它們將會被載入記憶體。 因此如果在 crontab 檔案更改後,並不需要重新啟動這個系統程式。

28.1.2. Cron 的存取控制

/etc/cron.allow 與 /etc/cron.deny 檔案是用來限制使用者對 cron 的存取權限。 這兩個存取控制檔案的格式是在每一行放置一個使用者名稱,兩個檔案中都不允許有空白字元。 假如在修改存取控制檔案後,並不需要重新啟動 cron 系統程式 (crond),這些存取控制檔案將在使用者試著要增加或刪除一個 cron 工作時被讀取。

root 使用者隨時都可以使用 cron,不管使用者的名稱是否有列在存取控制檔案中。

假如 cron.allow 檔案存在的話,只有在其中列出的使用者允許使用 cron,而 cron.deny 檔案便會被忽略。

假如 cron.allow 檔案不存在的話,所有在 cron.deny 檔案中列出的使用者都不允許使用 cron。

28.1.3. 啟動與停止服務

如要啟動 cron 服務,請使用 /sbin/service crond start 指令。 如要停止這項服務,您可以使用 /sbin/service crond stop 指令。 在此建議您在系統開機便啟動這項服務。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有