linux中at命令詳解


轉至:https://blog.51cto.com/12822117/2121101

at命令

一:簡介:

計划任務,在特定的時間執行某項工作,在特定的時間執行一次,需要安裝at服務,apt-get install at

二:時間定義:

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

三:語法:

at(選項)(參數)

四:選項:

-m:當指定的任務被完成之后,將給用戶發送郵件,即使沒有標准輸出
-M:不發送郵件
-l:atq的別名
-d:atrm的別名
-r:atrm的別名
-v:顯示任務將被執行的時間,顯示的時間格式為:Thu Feb 20 14:50:00 1997
-c:打印任務的內容到標准輸出
-V:顯示版本信息
-q:后面加<隊列> 使用指定的隊列
-f:后面加<文件> 從指定文件讀入任務而不是從標准輸入讀入
-t:后面<時間參數> 以時間參數的形式提交要運行的任務

五:相關命令:

● at:在特定的時間執行一次性的任務
● atq:列出用戶的計划任務,如果是超級用戶將列出所有用戶的任務,結果的輸出格式為:作業號、日期、小時、隊列和用戶名
● atrm:根據Job number刪除at任務
● batch:在系統負荷允許的情況下執行at任務,換言之,就是在系統空閑的情況下才執行at任務

六:參數:

日期時間:指定任務執行的日期時間
對隊列的補充:
● -q選項后面跟上隊列名稱將使用指定的隊列執行at任務
● 隊列名稱只包含一個字母,有效的隊列名稱取值范圍是:小寫字母a-z或大寫字母A-Z
● 在默認情況下a隊列作為at命令的默認隊列,b隊列作為batch命令的默認隊列
● 越大的字母在執行時擁有越高的優先級
● "="是作為特殊隊列保留給當前運行的at任務使用的
● 如果在創建at計划任務是使用大寫字母指定任務的隊列,該任務在執行的時候將被當做batch計划任務處理
● 使用atq查詢at任務時如果指定了隊列名稱,查詢的結果只會包含這個隊列下的任務
對-t選項的補充:
● -t選項的作用是在指定的time_arg時間參數對應的時刻執行at任務
● 這個參數后面的時間的格式必須和touch命令-t選項所需的時間的格式一致
● time_arg的格式為[[CC]YY]MMDDhhmm[.ss]
CC 指定年份的前兩位數字
YY 指定年份的后兩位數字
MM 指定一年的哪一月(從 01 到 12)
DD 指定一月的哪一天(從 01 到 31)
hh 指定一天中的哪一小時(從 00 到 23)
mm 指定一小時的哪一分鍾(從 00 到 59)
ss 指定一分鍾的哪一秒(從 00 到 59)

七:相關配置文件:

● 時間規范的確切定義可以在/usr/share/doc/at-3.1.10/timespec中查看
● 默認情況下計划任務都是放在/var/spool/at/這個文件
● root用戶可以在任何情況下使用at命令,而其他用戶使用at命令的權限定義在/etc/at.allow(被允許使用計划任務的用戶)和/etc/at.deny(被拒絕使用計划任務的用戶)文件中
● 如果/etc/at.allow文件存在,只有在該文件中的用戶名對應的用戶才能使用at
● 如果/etc/at.allow文件不存在,/etc/at.deny存在,所有不在/etc/at.deny文件中的用戶可以使用at
● at.allow比at.deny優先級高,執行用戶是否可以執行at命令,先看at.allow文件沒有才看at.deny文件
● 如果/etc/at.allow和/etc/at.deny文件都不存在,只有root用戶能使用at
● 一個空內容的/etc/at.deny表示任何用戶都能使用at命令,這是默認的配置
● 一般情況下這兩個文件存在一個即可。如果只有少數幾個用戶需要使用計划任務,那么就保留at.allow文件,如果大部分用戶都要使用計划任務,那么保留at.deny即可

八:創建at任務:

創建at任務方式有兩種,從文件輸入和從控制台輸入。以下分別用兩種方式創建1分鍾后將當前時間寫入 /root/learngit 文件的命令

1. 文件輸入:

linux中at命令詳解

2. 控制台輸入:

linux中at命令詳解

九:實例:

linux中at命令詳解
linux中at命令詳解

linux中at命令詳解

linux中at命令詳解
linux中at命令詳解


免責聲明!

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



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