LINUX_計劃任務

Chapter04_Scheduling Future Linux Tasks

計劃任務:

at:一次性的,完成之後就沒有了。

wKioL1XrvMLyXBnVAABnjOWtS1Y722.jpg


atq:查看當前at任務,等於at -l

wKiom1XruqXyZpDKAABvl989XDQ118.jpg

第二行的at是crtl+d提交的結果。

如果沒有指定的時間,則在規定日期的當天的,以該計劃創建的時間點來執行任務。


指定時間點:

wKioL1XrvNnTPxcWAABbQajseHc104.jpg


十天之後的八點:

wKioL1XrvOTj0qVpAABc4pNx_p0736.jpg


從現在起,二十分鐘後執行

wKiom1XrusqxvSUaAABc8JlgY2k210.jpg


刪除某一條任務atrm 或者at -d 

wKioL1XrvP6iW4xGAAFBUcW2VaI222.jpg


普通用戶也可以支持做計劃任務。

如果要限制某個用戶做計劃任務,則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內加入需要允許的用戶。


wKiom1XruuTQ-0AwAAB_q6E5TKg789.jpg

放在紅框內的腳本。每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


* * * * * 表示,只要執行完了命令,立即執行

 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章