歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux計劃任務(at batch crontab anacron)

Linux計劃任務(at batch crontab anacron)

日期:2017/2/28 14:50:49   编辑:Linux教程

· 未來只做一次 at (依賴於atd服務)

· 未來周期性做 cron (依賴於crond服務)

· cron補充(開機後執行) anacron (依賴於anacron服務)

at:
at 命令被用來在指定時間內調度一次性的任務。

at [-mldv] TIME
選項與參數:
-m :當at的任務完成後,即使沒有輸出信息,也以 email 通知給使用者
-l :列出目前系統上面的所有該使用者的at任務(同atq)
-d :可以取消一個在 at 任務(同atrm)
-v :可以使用較明顯的時間格式列出 at 任務
-c :可以列出後面接的該項任務的內容

at命令的時間格式:
now + 時間 :時間以 minutes、hours、days、或 weeks 為單位
HH:MM :24小時制度,如果時間已過,就會在第二天的這一時間執行
midnight :表示00:00
noon :表示12:00
teatime :表示16:00

[root@rhel6 ~]# at 13:10 //定義一個at任務在13:10執行
at> date >> /tmp/at //將當前時間輸入/tmp/at文件
at> echo "at command test" >> /tmp/at
at> uname -r >> /tmp/at
at> <EOT> //另選一行按Ctrl+D退出at命令模式
job 1 at 2012-12-28 13:10
[root@rhel6 ~]# at now + 1 minutes //再定義一個at任務在1分鐘後執行
at> date >> /tmp/at
at> echo "at command test again" >> /tmp/at
at> sleep 10
at> date >> /tmp/at
at> <EOT>
job 2 at 2012-12-28 13:10
[root@rhel6 ~]# date
Fri Dec 28 13:09:09 CST 2012
[root@rhel6 ~]# atq //顯示系統中所有的at任務
2 2012-12-28 13:10 a root
1 2012-12-28 13:10 a root
[root@rhel6 ~]# cat /tmp/at
Fri Dec 28 13:10:00 CST 2012
Fri Dec 28 13:10:00 CST 2012
at command test
at command test again
2.6.32-220.el6.x86_64
Fri Dec 28 13:10:10 CST 2012 //對比兩個時間可見at任務是按順序執行命令的


補充:batch
batch 命令被用來在系統平均負載達到 0.8% 以下時執行一次性的任務,用法與at一樣
[root@rhel6 ~]# batch midnight //在00:00之後系統平均負載達到0.8%以下的時候執行
at> sync
at> sync
at> shutdown -h now
at> <EOT>
job 3 at 2012-12-28 13:20
[root@www ~]# atq
3 2012-12-28 13:20 b root
[root@www ~]# atrm 3 //取消batch任務

/etc/at.allow 和 /etc/at.deny 文件可用來限制對 at 和 batch 命令的使用(root用戶不受其控制)。這兩個使用控制文件的格式都是每行一個用戶(不允許空格),且文件修改後,atd守護進程不需重啟。
如果at.allow文件存在,那麼只有其中列出的用戶才被允許使用at或batch命令,且忽略cron.deny文件。如果at.allow文件不存在,那麼所有在cron.deny中列出的用戶都將禁止使用at和batch.

Copyright © Linux教程網 All Rights Reserved