計劃任務:
at:一次性的,完成之後就沒有了。
atq:查看當前at任務,等於at -l
第二行的at是crtl+d提交的結果。
如果沒有指定的時間,則在規定日期的當天的,以該計劃創建的時間點來執行任務。
指定時間點:
十天之後的八點:
從現在起,二十分鐘後執行
刪除某一條任務atrm 或者at -d
普通用戶也可以支持做計劃任務。
如果要限制某個用戶做計劃任務,則vi /etc/at.deny
裏面直接寫入想要拒絕的用戶名。
要去除,則刪除at.deny內的用戶,或者建立一個at.allow,裏面寫入想允許的用戶
crontab:週期性計劃任務。
crontab -e :編輯
如果沒有指定用戶,則是對當前用戶做計劃任務。
-u 用戶 -e 則表示對某個用戶做計劃任務
-l:查看計劃任務
-u 用戶 -l 查看指定用戶的計劃任務
#分 時 日 月 周 需要執行的命令。。這些時間之間的關係是和關係,必須全部都滿足,才能執行命令,但是“日”和“周”是或關係,兩者同時存在的時候,只需滿足其一就可以了。
如果說不關心某個單位,或者具有“每”的意思,那麼是用*。。。當我們強調整點的時候,分位需要寫0
比如* 7 * * */bin/aa.sh 每天的七點鐘,每過1分鐘執行一次這個腳本
0 7 * * */bin/aa.sh 每天七點整執行一次腳本
如果某個時間內有多個時間段需要執行,則用“,”隔開
0,10,30 7 * * 1,2,3,4,5 /bin/aa.sh 週一到週五,每天七點的0分,10分30分執行一次
0,10,30 7 * * 1-5 /bin/aa.sh 上面的也可以寫成這個格式。
0,10,30 7 * * 1-3,6 /bin/aa.sh 週一到週三和週六,每天七點的0,10,30分執行腳本
0-15/5 7 * * 1-5 /bin/aa.sh 週一到週五,每天七點整開始,每隔5分鐘執行一次,直到7:15分停止。
crontab保存位置:/var/spool/cron 根據用戶名區分crontab
crontab -r 刪除計劃任務
普通也能做計劃任務。
若要拒絕某個用戶做任務,則vi /etc/cron.deny 然後裏面加入拒絕的用戶就可以了。
若要刪除某個拒絕的用戶,刪除cron.deny,或者在/etc/cron.allow內加入需要允許的用戶。
放在紅框內的腳本。每x都會執行一次。
思考:
crontab最多隻能精確到秒,做個計劃任務,如何精確到秒?
linux中crontab實現以秒執行任務
很多時候,我們計劃任務需要精確到秒來執行,根據以下方法,可以很容易地以秒執行任務。
以下方法將每10秒執行一次
1.編輯crontab
crontab -e
* * * * * /bin/date >>/tmp/date.txt
* * * * * sleep 10; /bin/date >>/tmp/date.txt
* * * * * sleep 20; /bin/date >>/tmp/date.txt
* * * * * sleep 30; /bin/date >>/tmp/date.txt
* * * * * sleep 40; /bin/date >>/tmp/date.txt
* * * * * sleep 50; /bin/date >>/tmp/date.txt
2.檢查結果
tail -f /tmp/date.txt
* * * * * 表示,只要執行完了命令,立即執行