例行性工作排程 crontab

2022-05-07 12:09:10 字數 1645 閱讀 3775

atd啟動

[root@study ~]# systemctl restart atd # 重新啟動 atd 這個服務

[root@study ~]# systemctl enable atd # 讓這個服務開機就自動啟動

[root@study ~]# systemctl status atd # 查閱一下 atd 目前的狀態

at 的運作方式

先找尋 /etc/at.allow 這個檔案,寫在這個檔案中的使用者才能使用 at ,沒有在這個檔案中的使用者則不能使用 at (即使沒有寫在 at.deny 當中);

如果 /etc/at.allow 不存在,就尋找 /etc/at.deny 這個檔案,若寫在這個 at.deny 的使用者則不能使用 at ,而沒有在這個 at.deny 檔案中的使用者,就可以使用 at 咯;

如果兩個檔案都不存在,那麼只有 root 可以使用 at 這個指令。

at 單一工作排程的進行

time:時間格式,這裡可以定義出『什麼時候要進行 at 這項工作』的時間,格式有:

at 工作的管理迴圈執行的例行性工作排程則是由 cron (crond) 這個系統服務來控制的。當使用者使用 crontab 這個指令來建立工作排程之後,該項工作就會被紀錄到 /var/spool/cron/ 裡面去了,而且是以賬號來作為判別的。不要使用 vi 直接編輯該檔案, 因為可能由於輸入語法錯誤,會導致無法執行 cron。

系統的配置檔案: /etc/crontab, /etc/cron.d/*

anacron 的執行流程應該是這樣的 (以 cron.daily 為例):

由 /etc/anacrontab 分析到 cron.daily 這項工作名稱的天數為 1 天;

由 /var/spool/anacron/cron.daily 取出最近一次執行 anacron 的時間戳;

由上個步驟與目前的時間比較,若差異天數為 1 天以上 (含 1 天),就準備進行指令;

若準備進行指令,根據 /etc/anacrontab 的設定,將延遲 5 分鐘 + 3 小時 (看 start_hours_range 的

設定);

延遲時間過後,開始執行後續指令,亦即『 run-parts /etc/cron.daily 』這串指令;

執行完畢後, anacron 程式結束。

crond 與anacron 的關係:

crond 會主動去讀取 /etc/crontab, /var/spool/cron/, /etc/cron.d/ 等配置檔案,並依據『分、時、日、月、周』的時間設定去各項工作排程;

根據 /etc/cron.d/0hourly 的設定,主動去 /etc/cron.hourly/ 目錄下,執行所有在該目錄下的執行檔案;

因為 /etc/cron.hourly/0anacron 這個指令碼檔案的緣故,主動的每小時執行 anacron ,並呼叫 /etc/anacrontab的配置檔案;

根據 /etc/anacrontab 的設定,依據每天、每週、每月去分析 /etc/cron.daily/, /etc/cron.weekly/, /etc/cron.monthly/內的執行檔案,以進行固定週期需要執行的指令。

Linux例行性工作排程crontab

什麼是例行性工作?比如太陽每天從東方公升起,學校的上課鈴總是不厭煩的定時響起,老媽的喊叫聲總在每天的固定時刻叫你起床等。這些都是例行性工作。linux系統也有自己的定時要辦的事情,比如日誌檔案的輪替,whatis資料庫的建立等等。linux例行性工作分一次性的 at 和迴圈執行的 cron 本篇部落...

linux之例行性工作排程 crontab學習

crontab maintain crontab files for individual users 是用來讓使用者在固定時間或固定間隔執行程式之用 crontab u username l e r 選項與引數 u 只有 root 才能進行這個任務,亦即幫其他使用者建立 移除 crontab 工作...

例行工作排程 crontab

例行工作,有點類似上班打卡,等等迴圈的工作 linux 工作排程的種類,at cron 一種是例行性的,就是每隔一定的週期要來辦的事項 crontab 一種是突發性的,就是這次做完以後就沒有的那一種 at 要想執行,必須啟動 atd 服務,啟動辦法 etc init.d atd restart ch...