Linux 定時任務調度


定時任務調度

任務調度:是指系統在某個時間執行的特定的命令或程序

任務調度分類

  • 系統工作:有些重要的工作必須周而復始的執行
  • 個別用戶工作:個別用戶可能希望執行某些程序

crontab 進行任務的設置

基本語法

crontab [選項]

常用選項

-e:編輯 crontab定時任務

-l:查詢crontab任務

-r:刪除當前用戶所有的crontab任務

快速入門

設置任務調度文件:/etc/crontab

設置個人任務調度:crontab -e

接着輸入任務到調度文件

*/1**** ls -l /etc/ > /tmp/to.txt

每小時的每分鍾執行ls -l /etc/ > /tmp/to.txt命令

細節說明
  • 5個點位符的說明

    • 第一個 "*":一小時當中的第幾分鍾 【0-59】
    • 第二個 "*":一天當中的第幾小時 【0-23】
    • 第三個 "*":一個月當中的第幾天 【1-31】
    • 第四個 "*":一年當中的第幾月 【1-12】
    • 第五個 "*":一周當中的周幾 【0-7】( 0 和 7 都代表周日)
  • 特殊符號說明

    • *:表示任何時間。如第一個"*",就代表一小時中每分鍾都執行一次
    • ,:表示不連續的時間。如“ 0 8,12 * * * ”,就代表每天的8點0分,12點0分執行一次
    • -:表示連續的時間范圍。如“ 0 5 * * 1-6 ”,代表周一到周六凌晨5點0分執行
    • */n:表示每隔多久執行一次。比如“ */1 * * * * ”,代表每隔1分鍾執行一次

crond 相關指令

終止任務調度

crontab -r

列出當前有那些任務調度

crontab -l

重啟任務調度

service crond restart

at 定時任務

基本介紹

  1. at命令是一次性定時計划任務,at的守護進程atd會以后台模式運行,檢查作業隊列來運行
  2. 默認情況下,atd守護進程每 60 秒檢查作業隊列,有作業時,會檢查作業運行時間,如時間與當前時間匹配,則運行此作業
  3. at命令是一次性定時計划任務,執行完一個任務后不再執行此任務
  4. 在使用at命令時,一定要保證atd進程的啟動 可以使用相關指令來查看:ps -ef | grep atd

基本語法

at [選項] [時間]

Ctrl + D 結束at命令的輸入,兩次

常用選項

-m:當指定的任務被完成后,將給用戶發送郵件,即使沒有標准輸出

-Iatd的別名

-datrm的別名

-v:顯示任務將被執行的時間

-c:打印任務的內容到標准輸出

-V:顯示版本信息

-q<隊列>:使用指定的隊列

-f<文件>:從指定文件讀入任務而不是從標准輸入讀入

-t<時間參數>:以時間參數的形式提交要運行的任務

at 指定時間

  1. 接受在當天的 hh:mm(小時:分鍾)式的時間指定。假如該時間已過去,那么就放在第二天執行。 例如:04:00
  2. 使用 midnight(深夜),noon(中午),teatime(飲茶時間,一般是下午 4 點)等比較模糊的詞語來指定時間。
  3. 采用 12 小時計時制,即在時間后面加上 AM(上午)或 PM(下午)來說明是上午還是下午。 例如:12pm
  4. 指定命令執行的具體日期,指定格式為 month day(月 日)或 mm/dd/yy(月/日/年)或 dd.mm.yy(日.月.年),指定的日期必須跟在指定時間的后面。 例如:04:00 2021-03-1
  5. 使用相對計時法。指定格式為:now + count time-units ,now 就是當前時間,time-units 是時間單位,這里能夠是 minutes(分鍾)、hours(小時)、days(天)、weeks(星期)。count 是時間的數量,幾天,幾小時。 例如:now + 5 minutes
  6. 直接使用 today(今天)、tomorrow(明天)來指定完成命令的時間。

案例:2天后的下等5點執行 /bin/ls/home

$ at 5pm + 2 days
at> /bin/ls/home


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM