Linux at 定時任務

智慧先行者發表於2016-12-21

命令格式:
at[引數][時間]  請注意系統時間是UTC

命令功能:
在一個指定的時間執行一個指定任務,只能執行一次。假如該時間已過去,那麼就放在第二天執行。

/var/spool/mail/這裡是任務執行後,反饋的郵件

/etc/at.allow 與 /etc/at.deny 設定at的使用者

開啟atd程式
ps -ef | grep atd
啟動atd服務 /etc/init.d/atd start or restart
設定開機自啟動 chkconfig atd on

命令引數:
-m 當指定的任務被完成之後,將給使用者傳送郵件,即使沒有標準輸出
-I atq的別名
-d atrm的別名
-v 顯示任務將被執行的時間
-c 列印任務的內容到標準輸出
-V 顯示版本資訊
-q<列隊> 使用指定的列隊
-f<檔案> 從指定檔案讀入任務而不是從標準輸入讀入
-t<時間引數> 以時間引數的形式提交要執行的任務

at時間格式:
HH:MM 在今日的 HH:MM 時刻進行,若該時刻已超過,則明天的 HH:MM 進行此任務。
HH:MM YYYY-MM-DD 強制規定在某年某月的某一天的特殊時刻進行該項任務
HH:MM[am|pm] [Month] [Date] 例如 05:00pm March 20 強制在某年某月某日的某時刻進行該項任務
HH:MM[am|pm] + number [minutes|hours|days|weeks] 在某個時間點再加幾個時間後才進行該項任務。
例如 now + 5 minutes 例如 04pm + 3 days

Ctrl D 退出at任務設定
$ at 01:00 2017-01-01
at> df | grep dev >/tmp/devUsed.txt
at> <EOT>
job 1 at 2017-01-01 01:00

設定檔案執行
$ at -f /tmp/a.sh 06:00 2017-01-01
job 8 at 2017-01-01 06:00

檢視系統沒有執行的工作任務
$ at -l
8 2017-01-01 06:00 a wx
1 2017-01-01 01:00 a wx

顯示任務內容,最後一行是設定的任務,這裡的8指的是job編號
at -c 8

刪除任務,8是job編號
at -d 8

 

相關文章