匿名
尚未登入
登入
頂極製作所
搜尋
檢視 緯育 2026-0513 的原始碼
出自頂極製作所
命名空間
頁面
討論
更多
更多
頁面操作
閱讀
檢視原始碼
歷史
←
緯育 2026-0513
由於下列原因,您沒有權限進行編輯此頁面的動作:
您請求的操作只有這個群組的使用者能使用:
管理員
您可以檢視並複製此頁面的原始碼。
本次講座主要介紹 Linux 系統中的排程(Scheduling)功能,將排程分為「單次排程」(at)與「循環排程」(cron)兩大類進行說明。講師首先強調,在實際工作場景中,循環排程因其重複執行的特性而更為常用與重要,特別是系統層級的循環排程。講座詳細介紹了排程的應用情境,例如半夜關機維修、定時清除暫存檔、備份資料庫等,並說明了作業系統如何利用排程執行內建功能,如日誌檔案整理(Logrotate)與資料庫更新。<br><br> 接著,講座深入探討單次排程 at,包括其定義、特性、相關服務(atd)、在不同發行版中的安裝與啟動,以及如何透過 at.allow 和 at.deny 檔案進行權限管理。講師透過實作練習,詳細展示了 at 指令集(at, atq, atrm, at -c)的使用方法,包括建立、查詢、修改及刪除任務。<br><br> 後半部分則轉向介紹循環排程 cron,說明其服務 crond 與相似的權限設定檔 cron.allow 和 cron.deny。講師詳細講解了系統級與個人級循環排程的區別、設定檔案的位置(/etc/crontab, /etc/cron.d/, /var/spool/cron),並深入剖析 crontab 的時間欄位格式(分、時、日、月、週)及其特殊符號(, ,, -, /)的應用。最後,透過具體範例指導如何設定系統與個人排程任務,並探討了伺服器遠端開機(如 Wake-on-LAN)與自動化管理的進階策略。 === 排程基礎概念與分類 === * 排程的定義與用途 ** 排程是將工作預先安排好,交給作業系統,讓系統在指定時間自動執行的機制。 ** 應用情境範例: *** 半夜關機維修:可預先設定關機指令,而無需人員等到半夜三點執行。 *** 定時傳送程式執行結果:例如設定下午三點將程式結果寄到指定信箱。 *** 每日定時清除暫存檔:例如清除 /tmp 目錄下的檔案。 *** 每週固定時間備份資料庫。 * 作業系統中的排程應用實例 ** 日誌檔案的整理與置換 (Logrotate):系統透過排程在特定時間自動執行 Logrotate。 ** Locate 指令的資料庫更新:Locate 指令的資料庫會透過排程自動更新。 ** MAN page 資料更新:MAN page 資料庫的更新可寫入排程。 ** 系統更新指令自動化:可將 apt update 這類指令加入排程,使其每日自動在背景執行。 * 排程的兩大類型 ** 單次排程 (at):工作僅執行一次,執行完畢後即結束,不會再重複。 ** 循環排程 (cron):在指定的時間週期(分、時、日、月、週)重複執行工作,是實務上更常用的一種。 === 單次排程 (at) === * 特性與服務 (ATD) ** 一次性的工作執行,執行完畢後即失效。 ** 依賴一個名為 atd 的背景服務來運作。若服務未啟動,排程不會執行。 ** Ubuntu 22.04 以後版本預設不安裝,需手動安裝 (apt install at);CentOS 通常預設安裝但需手動啟動。 ** 服務管理指令:systemctl status atd、systemctl start atd、systemctl enable atd。 ** 排程檔案儲存位置:Ubuntu 中為 /var/spool/cron/atjobs。 * 權限管理 ** 透過 /etc/at.allow 和 /etc/at.deny 兩個檔案來控制使用者權限。 ** 權限判斷邏輯: 1. root 帳號永遠擁有使用權限。 2. 若 /etc/at.allow 存在,則只有列在該檔案中的使用者被允許,此時 /etc/at.deny 被忽略。 3. 若 /etc/at.allow 不存在,但 /etc/at.deny 存在,則未被列在 /etc/at.deny 中的使用者皆可使用。 4. 若兩個檔案都不存在,則只有 root 能使用。 * at 指令集與用法 ** 建立排程:at [時間],進入互動模式後輸入指令,按 Ctrl+D 結束。 ** 查看排程列表:at -l 或 atq。 ** 查看排程內容:at -c [編號]。可直接編輯其對應的腳本檔來修改排程。 ** 刪除排程:at -d [編號] 或 atrm [編號]。 * 時間格式 ** 特定時間:HH:MM (例如 20:00)。 ** 特定日期與時間:HH:MM YYYY-MM-DD (例如 20:00 2026-05-30)。 ** 相對時間:now + [數量] [單位] (例如 now + 30 minutes)。 === 循環排程 (cron) === * 服務與權限 ** 循環排程依賴於 crond 服務,必須確保其正在運行且已設定開機啟動。 ** 權限控制與 at 類似,使用 /etc/cron.allow 和 /etc/cron.deny 檔案,判斷邏輯完全相同。 * 排程類型與設定檔 ** 系統循環排程:由系統(通常是 root)執行。 *** 主要設定檔:/etc/crontab。 *** 格式:分 時 日 月 週 使用者帳號 指令。 *** 需使用 vi 等編輯器直接修改。 *** 輔助目錄:/etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly,可將腳本直接放入對應目錄,系統會按時執行。 ** 個人循環排程:以特定使用者帳號身份執行。 *** 使用 crontab -e 進行編輯。 *** 格式:分 時 日 月 週 指令(無使用者帳號欄位)。 *** 使用 crontab -l 查看排程。 *** 排程檔案儲存在 /var/spool/cron 目錄下,以使用者帳號命名。 * crontab 時間格式詳解 ** 五個時間欄位: 1. 分 (Minute): 0 * 59 2. 時 (Hour): 0 * 23 3. 日 (Day of month): 1 * 31 4. 月 (Month): 1 * 12 5. 週 (Day of week): 0 * 7 ( 0 和 7 皆為星期日) ** 特殊符號: *** 星號 ()*: 代表「每一個」單位。例如 表示每分鐘。 *** 逗號 (,): 用於指定不連續的時段。例如 0 10,14 表示每天的 10:00 和 14:00。 *** 減號 (-): 用於指定連續的時間範圍。例如 0 8-12 1-5 表示週一至週五,早上 8 點到 12 點的每個整點。 *** 斜線 (/): 代表頻率。例如 /5 表示每隔 5 分鐘。 === 伺服器遠端開機與管理策略 === * 自動開機解決方案: ** 主機板BIOS設定:設定每日在特定時間自動開機。 ** 網路卡開機 (Wake-on-LAN):在區域網路內發送特定封包(Magic Packet)來喚醒主機。 ** 電話卡喚醒 (Ring-on):較古老的技術,透過撥打電話喚醒主機。 * 週末不開機策略: ** 結合 BIOS 每日自動開機與 cron 排程。 ** 在 /etc/crontab 中設定一條僅在週末執行的關機指令,例如:/5 6-7 root shutdown。 ** 這樣即使主機在週末自動開機,也會在幾分鐘後被排程任務自動關閉。 [[檔案:2026-0513-01.png|800px]]
返回到「
緯育 2026-0513
」。
* [[檔案:2000-Dragon-30.png|15px]] [[附近走走]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[應用程式]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[郵遞區號]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[作品紀錄]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[攝影相簿]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[網路書籤]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[網路照片]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[星艦日誌]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[Privacy_Policy|隱私政策]]<br>
附近走走
應用程式
郵遞區號
作品紀錄
攝影相簿
網路書籤
網路照片
星艦日誌
隱私政策
首頁
wiki工具
wiki工具
特殊頁面
頁面工具
頁面工具
使用者頁面工具
更多
連結至此的頁面
相關變更
頁面資訊
頁面日誌