理解一下windows server 排程(Job)at命令的進階版:
schtasks /create命令
建立一個排程必須要有
1.排程的名字(唯一)
TN:Task Name(必須)
2.執行什么程式
TR:Task Run(必須)
3.用什么賬戶執行排程
RU:Run User(必須)
RP:Run Password(必須)
4.重頭戲:頻率
SC:Schedule(必須)
每分鐘 , 每小時 還是 每天 / 每周 /每月 ?
如果要真的every,則不太靈活,因此再提供一個間隔
MO:modifier(默認1)
即每幾分鐘,每幾小時或每幾天,每幾周,每幾個月執行一次
5.什么時候執行?
一支程式總有一個精確的時間開始執行
ST:StartTime(默認當前時間)
這個時間以分鐘表示
那那些每分鐘要執行的,每三分鐘要執行的呢?
當然就是從什么時間開始每分鐘,每三分鐘執行一次了
6.有了開始執行時間,當然就有停止執行的時間了
ET:EndTime
每分鐘執行,每小時執行的排程,可能只需要執行到22:00就不要執行排程了
但如果是每(幾)天,每(幾)周,每(幾)月執行一次呢?
執行一次當然不需要幾天,幾周,幾月了(不鉆牛角尖,說有的程式要執行幾年的)
結束時間是否就沒有意義呢?
同樣,這就引出了如果是按天,周,月執行,是不是真的就執行一次
答案顯示是否定的
比如以每兩天的頻率執行的排程,可能需要在執行日期內,上午一次,下午一次,或每3分鐘一次
同樣每周,每月執行的排程也存在上述這種情況,也需要重複執行
7.這就是每日,每周,每月的重複執行間隔(以分鐘為單位)
RI:Run Interval(如果有ET,或下面的DU,則默認為10分鐘)
有了這個東東,上面的ET同樣也就對日,月,周有效了
聰明的同學可能到這里就會想到
以每1天的頻率,然後再加以重複執行間隔
應該就可以替代每分,每小時的SC設定了
答案是非常正確
windows的排程設定界面,就沒有讓你選擇每分鐘,每小時的頻率選項
好了,為了簡單起見,就認為頻率只縮小到日,周,月就行了,而把小時,分鐘看成是每日執行的重複執行
8.再回到結束時間上來
可能有時候直接設定一個準確的時間作為結束
DU: duration
但有時也可以直接設定重複執行多少分鐘后就停止
事實上在win2003上的排程管理界面中,輸入ET是會被自動換算成DU的
因此這兩個其實是一個意思,表達方式不一樣罷了
不過一般情況下,我自己還是ET用得多,也方便
9.好了,在那些執行頻率很密集的排程,如每分鐘執行一次,但是某次的執行時間可能超過一分鐘,下次排程要不要啟動呢
如果不想啟動,那就
K:Kill
吧
10.討論了時間,我們再來討論日期吧
對于每天(每小時,每分鐘就不談了)來說,沒有具體的日期選擇,都是每天
而對于每周,就可以選擇星期幾執行
D:Days MON,TUE…
用逗號可以設定多個
而每月,則可以選擇幾號執行
D:Days 1,2,5…
哪些月執行
M:Months JAN,FEB…
另外如果是每月執行
在這里有一個MO的特例(MO不表示每隔幾月執行)
MO可以設為first,second,last,lastday等
然後再在D中設定星期幾
表示在每月的第一個,第二個,最后一個星期幾,最后一天執行
11.好了,有了開始時間和結束時間
那開始日期和結束日期同樣存在
不管是每分,每小時
還是每日,每周,每月
都可以設定開始日期和結束日期
SD:Start Date(默認今天)
ED:End Date
12.強制建立
/F
當前Job名稱存在,則強行Update
除了上面所說的SC頻率外
還有以下SC類型
ONCE、ONSTART、ONLOGON,ONIDLE
一般在系統中用得比較少
所以也沒有關注
可以通過 Schtasks /Create /?
來獲取全部信息
此外,對于非英文操作系統
如繁體中文操作系統
這個命令還非常變態
SC,M,D等選項居然使用當前語言
如每日,每週,每月
如星期一,星期二
如一月(這個一直沒有成功,我也不知道用什么代替Jan,Feb等)
兩個示例如下:
強制建立排程test
每隔3分鐘執行1次xxx.exe,從早上7:00到晚上22:00
如果還在執行,則不執行
schtasks /create /tn test /f
/tr xxx.exe
/ru useracount /rp password
/sc dayly
/st 07:00
/et 22:00
/ri 3
/k
強制建立排程test
每年一月,三月的5號
從早上10:00開始,到晚上22:00結束,每隔5分鐘執行一次執行xxx.exe
如果還在執行,則不執行
schtasks /create /tn test /f
/tr xxx.exe
/ru useracount /rp password
/sc monthly
/m Jan,Mar
/d 5
/st 10:00
/et 22:00
/ri 5
/k