前言:
cron 系統(tǒng)調(diào)度進程,使用它在每天得非高峰負(fù)荷時間段運行作業(yè),或者在一周或一月中得不同時段運行at命令,在特定時間運行一些特殊作業(yè)& 使用它在后臺運行一個占用時間不長得進程nohup,使用它在后臺運行一個命令,即使在用戶退出時也不受影響;凇皶r間片輪轉(zhuǎn)調(diào)度算法”,每個進程都會被分給一個運行的時間片,就拿上面例(4)程序中的父,子進程的運行來說,比如時間片允許的時間段是100毫秒,這個時間是很短很短的,先執(zhí)行父進程,遇到了sleep( sleep休眠,插入阻塞隊列,進程阻塞狀態(tài)就不會被執(zhí)行,休眠時間到后,就會插入就緒隊列,等待調(diào)度程序執(zhí)行),保存父進程的狀態(tài)信息,執(zhí)行子進程,子進程也遇到sleep阻塞,再看父進程還是阻塞狀態(tài),此時終端用“ps-aux”命令查看進程狀態(tài),可以看到父子進程都是處于中斷等待狀態(tài)。如果它在第二隊列中運行一個時間片后仍未完成,再依次將它放入第三隊列,……,如此下去,當(dāng)一個長作業(yè)(進程)從第一隊列依次降到第n隊列后,在第n 隊列便采取按時間片輪轉(zhuǎn)的方式運行。
注意:at命令是一次性定時計劃任務(wù),執(zhí)行完一個任務(wù)后不再執(zhí)行此任務(wù)了。
1、at命令格式
at?[選項]?[時間] Ctrl?+?D??結(jié)束at命令的輸入
在使用at命令的時候,一定要保證atd進程的啟動。
[root@vms002?/]#?ps?-ef|grep?-v?grep|grep?atd rpcuser????1550??????1??0?6月10?????????00:00:00?/usr/sbin/rpc.statd?--no-notify root???????1552??????1??0?6月10?????????00:00:00?/usr/sbin/atd?-f
2、at命令參數(shù)
當(dāng)指定的任務(wù)被完成后,將給用戶發(fā)送郵件,即使沒有標(biāo)準(zhǔn)輸出
atq的別名
atrm的別名
顯示任務(wù)將被執(zhí)行的時間
打印任務(wù)的內(nèi)容到標(biāo)準(zhǔn)輸出
顯示版本信息
-q <隊列>
使用指定的隊列
-f <文件>
從指定文件讀入任務(wù)而不是從標(biāo)準(zhǔn)輸入讀入
-t <時間參數(shù)>
以時間參數(shù)的形式提交要運行的任務(wù)
3、時間定義
at允許使用一套相當(dāng)復(fù)雜的指定時間的方法:
● 能夠接受在當(dāng)天的hh:mm(小時:分鐘)式的時間指定。假如該時間已過去,那么就放在第二天執(zhí)行。 例如:04:00
● 能夠使用midnight(深夜),noon(中午),teatime(飲茶時間,一般是下午4點)等比較模糊的詞語來指定時間。
1.3.2 二十四小時計時制與十二小時計時制轉(zhuǎn)換 要求設(shè)計電路,能夠快速的在二十四小時制和十二小時計時制之間轉(zhuǎn)變,并且在十二小時制狀態(tài),設(shè)計一定的區(qū)分功能,以便于區(qū)別是上午還是下午。由于計時器即鐘表僅有12小時,只合一晝夜之半,于是以上午下午來辨別,以夜12時(下午24時)正,為0時,夜(上午)1時為1時,以正午12時為12時,下午1時為13時linux命令,下午6時為18時,下午11時為23時。由于計時器即鐘表僅有12小時,只合一晝夜之半,于是以上午下午來辨別,以夜12時(下午24時)正,為0時,夜(上午)1時為1時,以正午12時為12時,下午1時為13 時,下午6時為18時linux命令,下午11時為23時。
● 能夠指定命令執(zhí)行的具體日期,指定格式為month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必須跟在指定時間的后面。 例如:04:00 2009-03-1
● 能夠使用相對計時法。指定格式為:now + count time-units ,now就是當(dāng)前時間,time-units是時間單位,這里能夠是minutes(分鐘)、hours(小時)、days(天)、weeks(星期)。count是時間的數(shù)量,幾天,幾小時。 例如:now + 5 minutes 04pm + 3 days