1 / 14

Linux 基礎學習

Linux 基礎學習. Chapter 16 例行性工作排程 (crontab). 內容. 什麼是例行性工作排程 僅執行一次的工作排程 循環執行的例行性工作排程 可喚醒停機期間的工作任務. 16.1  什麼是例行性工作排程. 16.1.1 Linux 工作排程的種類: at, cron. 一種是例行性的,就是每隔一定的週期要來辦的事項; 一種是突發性的,就是這次做完以後就沒有的那一種 ( 電腦大降價 ...) 那麼在 Linux 底下如何達到這兩個功能呢?那就得使用 at 與 crontab 這兩個好東西囉!

lowell
Download Presentation

Linux 基礎學習

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Linux 基礎學習 Chapter 16 例行性工作排程 (crontab) Linux基礎--例行性工作排程 (crontab)

  2. 內容 • 什麼是例行性工作排程 • 僅執行一次的工作排程 • 循環執行的例行性工作排程 • 可喚醒停機期間的工作任務 Linux基礎--例行性工作排程 (crontab)

  3. 16.1 什麼是例行性工作排程 • 16.1.1Linux 工作排程的種類:at, cron • 一種是例行性的,就是每隔一定的週期要來辦的事項; • 一種是突發性的,就是這次做完以後就沒有的那一種 (電腦大降價...) • 那麼在 Linux 底下如何達到這兩個功能呢?那就得使用 at 與 crontab 這兩個好東西囉! • at :at 是個可以處理僅執行一次就結束排程的指令,不過要執行 at 時,必須要有 atd 這個服務 (第十八章) 的支援才行。在某些新版的 distributions 中,atd 可能預設並沒有啟動,那麼 at 這個指令就會失效呢!不過我們的 CentOS 預設是啟動的! • crontab :crontab 這個指令所設定的工作將會循環的一直進行下去!可循環的時間為分鐘、小時、每週、每月或每年等。crontab 除了可以使用指令執行外,亦可編輯 /etc/crontab 來支援。至於讓 crontab 可以生效的服務則是 crond 這個服務喔!

  4. 16.1 什麼是例行性工作排程 • 16.1.2Linux 上常見的例行性工作 • 進行登錄檔的輪替 (log rotate) • 登錄檔分析 logwatch 的任務 • 建立 locate 的資料庫 • whatis 資料庫的建立 • RPM 軟體登錄檔的建立 • 移除暫存檔 • 與網路服務有關的分析行為

  5. 16.2 僅執行一次的工作排程 • 16.2.1atd 的啟動與 at 運作的方式 • at 的運作方式 1.先找尋 /etc/at.allow 這個檔案,寫在這個檔案中的使用者才能使用 at ,沒有在這 個檔案中的使用者則不能使用 at (即使沒有寫在 at.deny 當中); 2.如果 /etc/at.allow 不存在,就尋找 /etc/at.deny 這個檔案,若寫在這個 at.deny 的 使用者則不能使用 at ,而沒有在這個 at.deny 檔案中的使用者,就可以使用 at 了; 3.如果兩個檔案都不存在,那麼只有 root 可以使用 at 這個指令。

  6. 16.2 僅執行一次的工作排程 • 16.2.2 實際運作單一工作排程

  7. 16.2 僅執行一次的工作排程 • at 工作的管理

  8. 16.2 僅執行一次的工作排程 • batch:系統有空時才進行背景任務

  9. 16.3 循環執行的例行性工作排程 • 16.3.1 使用者的設定

  10. 16.3 循環執行的例行性工作排程

  11. 16.3 循環執行的例行性工作排程 • 16.3.2 系統的設定檔:/etc/crontab

  12. 16.3 循環執行的例行性工作排程 • 16.3.3 一些注意事項 • 資源分配不均的問題 • 取消不要的輸出項目 • 安全的檢驗 • 週與日月不可同時並存

  13. 16.4 可喚醒停機期間的工作任務 • 16.4.1 什麼是 anacron anacron 並不是用來取代 crontab 的,anacron 存在的目的就在於我們上頭提到的,在處理非 24 小時一直啟動的 Linux 系統的 crontab 的執行!所以 anacron 並不能指定何時執行某項任務,而是以天為單位或者是在開機後立刻進行 anacron 的動作,它會去偵測停機期間應該進行但是並沒有進行的 crontab 任務,並將該任務執行一遍後,anacron 就會自動停止了。

  14. 16.4 可喚醒停機期間的工作任務 • 16.4.2anacron 與 /etc/anacrontab 由於/etc/cron.daily 內的任務比較多,因此我們使用每天進行的任務來解釋一下anacron 的運作情況好了。anacron 若下達『 anacron -s cron.daily 』時,它會這樣運作的: 1. 由 /etc/anacrontab 分析到 cron.daily 這項工作名稱的天數為 1 天; 2. 由 /var/spool/anacron/cron.daily 取出最近一次執行 anacron 的時間戳記; 3. 由上個步驟與目前的時間比較,若差異天數為 1 天以上 (含 1 天),就準備 進行指令; 4. 若準備進行指令,根據 /etc/anacrontab 的設定,將延遲 65 分鐘 5. 延遲時間過後,開始執行後續指令,亦即『 run-parts /etc/cron.daily 』這串 指令; 6. 執行完畢後,anacron 程式結束。

More Related