at命令允許指定Linux系統(tǒng)何時運行腳本,at命令會將作業(yè)提交到隊列中,指定shell在何時運行該作業(yè)。at的守護進程atd會以后臺模式運行,檢查作業(yè)隊列來運行作業(yè)。atd守護進程會檢查系統(tǒng)上的一個特殊目錄來獲取at命令的提交的作業(yè)。默認情況下,atd守護進程每60秒檢查一次目錄。有作業(yè)時,會檢查作業(yè)運行時間,如果時間與當(dāng)前時間匹配,則運行此作業(yè)。
at (選項)(參數(shù))
ctrl+D 結(jié)束at命令的輸入
在使用at命令的時候linux命令,一定要保證atd進程啟動。
ps -ef | grep atd 查看atd進程是否啟動。如果沒有啟動使用 /etc/init.d/atd start or restart
chkconfig atd on 設(shè)置atd開機啟動
-m 當(dāng)指定的任務(wù)被完成之后,將給用戶發(fā)送郵件,即使沒有標準輸出
-I atq的別名. atq命令可以查看系統(tǒng)中等待的作業(yè)
-d atrm的別名. atrm命令可以刪除系統(tǒng)中的等待作業(yè),后面加上要刪除的作業(yè)id
-v 顯示任務(wù)將被執(zhí)行的時間
-c 打印任務(wù)的內(nèi)容到標準輸出
-V 顯示版本信息
-q<列隊> 使用指定的列隊
-f<文件> 從指定文件讀入任務(wù)而不是從標準輸入讀入
-t<時間參數(shù)> 以時間參數(shù)的形式提交要運行的任務(wù)
at允許使用一套相當(dāng)復(fù)雜的指定時間的方法。
能夠接受在當(dāng)天的hh:mm(小時:分鐘)式的時間指定。假如該時間已過去,那么就放在第二天執(zhí)行。
子時:23點——凌晨0點59分丑時:1點——凌晨2點59分寅時:3點——凌晨4點59分卯時:5點——早晨6點59分辰時:7點——上午8點59分巳時:9點——中午10點59分午時:11點——下午12點59分未時:13點——下午14點59分申時:15點——下午16點59分酉時:17點——下午18點59分戌時:19點——晚上20點59分亥時:21點——晚上22點59分由日天干推時干支參見第2個圖日上起時表。每天的時間段又分為凌晨,早上,上午,中午,下午,傍晚,深夜,子夜8個階段,其中凌晨到傍晚是主人公的自由活動時間,凌晨和深夜屬于過渡和準備時間,子夜,是用來給某些特殊事件的時間。1.宣武區(qū) 長椿街 國華商場對面 有個長椿街西里一條胡同 晚上的時候有一些賣小吃的在那里擺地攤 白天中午和下午也有擺地攤的 賣什么的都有中午11:30到下午1:30 晚上6:00開始一直到深夜 雖然在二環(huán)里吧 不過感覺城管很少在那里蹲點的 中午和傍晚的時候沒見過有管的。
用戶還能夠采用12小時計時制,即在時間后面加上AM(上午)或PM(下午)來說明是上午還是下午。
也能夠指定命令執(zhí)行的具體日期,指定格式為month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)。指定的日期必須跟在指定時間的后面。
指定格式為:now + count time-units ,now就是當(dāng)前時間,time-units是時間單位,這里能夠是minutes(分鐘)、hours(小時)、days(天)、weeks(星期)。格式為:*(分鐘)*(小時) *(天) *(月) *(星期) 命令/腳本。具體意義表示:分鐘 小時 日期 月份 星期 命令,在某月(mon)的某天(dom)或者星期幾(dow)的幾點(h,24小時制)幾分(m)執(zhí)行某個命令(command),*表示任意時間。
更有一種計時方法就是直接使用today(今天)、tomorrow(明天)來指定完成命令的時間。
三天后的下午5點鐘執(zhí)行 /bin/ls
at 5pm+3 days
at> /bin/ls
at> <EOT>
明天17點鐘,輸出時間到指定文件內(nèi)
ubuntu@ubuntu:~$ at 17:20 tomorrow
warning: commands will be executed using /bin/sh
at> date > /root/log.log
at> <EOT>
job 12 at Sat Jan 26 17:20:00 2019
ubuntu@ubuntu:~$
計劃任務(wù)設(shè)定后linux命令,在沒有執(zhí)行之前我們可以用atq命令來查看系統(tǒng)沒有執(zhí)行工作任務(wù)
ubuntu@ubuntu:~$ atq
12 Sat Jan 26 17:20:00 2019 a ubuntu
ubuntu@ubuntu:~$
刪除已經(jīng)設(shè)置的任務(wù)
atrm 12
顯示已經(jīng)設(shè)置的任務(wù)
at -c 12
參考文章:
https://blog.csdn.net/jobschen/article/details/50673683