工作排程種類
at 是個可以處理僅執行一次就結束排程的指令,不過要執行 at 時, 必須要有 atd 這個服務
crontab 設定的工作將會循環的一直進行!循環的時間為分、小時、每週、每月或每年等。crontab 除了可以使用指令執行外,亦可編輯 /etc/crontab 來支援。讓crontab可以啟動則是 crond 這個服務!
at
sudo sysv-rc-conf atd on # 開啟 atd run level
語法:
at [-mldv] TIME
at -c 工作號碼
選項與參數:
-m :當at工作完成後,即使沒有輸出訊息,亦以 email 通知使用者該工作已完成。
-l :at -l 相當於 atq,列出目前系統上面的所有該使用者的 at 排程;
-d :at -d 相當於 atrm ,可以取消一個在 at 排程中的工作;
-v :可以使用較明顯的時間格式列出 at 排程中的工作列表;
-c :可以列出後面接的該項工作的實際指令內容。
TIME:什麼時候要進行 at 這項工作,格式有:
HH:MM (04:00) 在今日某時刻進行,若已超過,則明天的時間進行
HH:MM YYYY-MM-DD (04:00 2009-03-17)
HH:MM[am|pm] [Month] [Date] (04pm March 17)
HH:MM[am|pm] + number [minutes|hours|days|weeks] ( now + 5 minutes, 04pm + 3 days)
例:一
at now + 5 minutes
進入編輯畫面
[ctrl] + d 就會出現 <EOF> 的字樣!代表結束!
job 1 at Wed Nov 30 22:27:00 2011 //編輯結束後,顯示第幾工作
範例二:將上述的第 1 項工作內容列出來查閱
at -c 1
範例三:於某時間關機
at 23:00 2011-03-17
at> /bin/sync
at> /bin/sync
at> /sbin/shutdown -h now
at> <EOT>
job 2 at Wed Nov 30 22:39:00 2011
使用 at 時會進入一個 at shell 的環境來下達工作指令,此時,最好使用絕對路徑來下達指令,比較不會有問題喔
atq
查詢目前主機上面有多少的 at 工作排程?
atrm 將第()個工作移除!
atrm 5 將的第 5 個工作移除!
batch:系統有空時才進行背景任務
batch 是利用 at 來進行指令的下達啦!只是加入一些控制參數而已。
安全設定
先找尋 /etc/at.allow 這個檔案,寫在這個檔案中的使用者才能使用 at ,沒有在這個檔案中的使用者則不能使用 at (即使沒有寫在 at.deny 當中);
如果 /etc/at.allow 不存在,就尋找 /etc/at.deny 這個檔案,若寫在這個 at.deny 的使用者則不能使用 at
如果兩個檔案都不存在,那麼只有 root 可以使用 at 這個指令。
沒有留言:
張貼留言