配置Linux任務計劃

標籤:html

任務計劃

linux計劃任務

linux任務計劃

crontab

  分類: Linux
   Linux有三種計劃任務:

  at:指定一個時間執行一個任務 (適用一個或多個任務,執行一次後就不用)

  cron:根據一個時間表自動執行任務 (使用一個或多個任務,週期性執行)

  系統級別的計劃任務及其擴展anacron:在一個指定時間間隔錯事後自動執行任務

   1、at服務:安排一個任務在將來執行,須要一個atd的系統後臺進程

  #at now+2 minutes 回車

  >輸入要執行的命令

  >ctrl+d 結束輸入

  atq;查詢當前的等待任務

  用atq來查詢,已經運行的任務,就消失了。這就是at計劃任務的重點,只運行一次

  atrm:刪除等待任務

  啓動計劃任務後,若是不想啓動設定好的計劃任務可使用atrm命令刪除。

  格式:atrm 任務號

  命令後面跟計劃任務編號,若是不跟,就會刪除這個用戶全部的計劃任務。

  還能夠進入到/var/spool/at目錄裏把計劃任務刪除,計劃任務的文件都保存在該目錄裏,能夠用rm -f 文件名來刪除(以文件的形式刪除計劃任務,由於計劃任務是以文件形式保存在該目錄中)

  在一般狀況下,超級用戶均可以使用這個命令。對於其餘用戶來講,可否可使用就取決於兩個文件:/etc/at.allow和/etc /at.deny

  若是你要讓哪一個用戶不能使用計劃任務,就直接把他的用戶名寫進去就能夠了,一排只能寫一個。

  同時寫入allow 及deny, 容許.

   2、cron服務

  上面已經簡單介紹了cron的一些進程和控制。下面咱們來看看cron怎麼實現。

  相對與at,cron的優勢就是可以週期性的執行某個命令,at卻只能執行一次

  cron的後臺進程名字是crond ,cron也是system V的服務,因此咱們能夠service crond start|stop 來啓動和關閉此服務,也可使用chkconfig或者ntsysv來選擇cron服務的默認開啓,這些命令在之前咱們都講過的

  #crontab -e 編輯當前用戶的cron表

  #crontab -l 查看當前用戶的cron表

  #crontab -r 刪除當前用戶的cron進程

  #crontab -u 用戶名 以某用戶的身份來控制cron表

  還有個重要的知識點,就是當用戶的計劃任務創建後是存放在/var/spool/cron這個目錄

  當使用crontab -e編輯當前用戶的cron表後,會出現一個vi文件,cron的格式是這樣的。分紅兩列,左邊是時間,右邊是運行的命令。時間是由5個部分組成。

  例:

  * * * * * wall hello everyone

  5個星號分別表明:minute hour day-of-month month-of-year day-of-week 分時日月周,而wall hello everyone 這是命令內容。上面的意識是每分每小時天天每個月每週廣播hello everyone。具體時間你們能夠本身定義。若是要每兩分鐘發送就用*/2代替第一個*。也能夠是用具體時間來表示。

  Crontab –e 編輯的任務不要加入用戶名

  第一個*星號表明個小時的第幾分鐘:minute 範圍是從0-59

  第二個*星號表明天天的第幾個小時:hour 範圍是從0-23

  第三個*星號表明每個月的第幾個日:day-of-month 範圍從1-31

  第四個*星號表明沒年的第幾個月:month-of-year 範圍從1-12

  第五個*星號表明每週的星期幾:day-of-week 範圍從0-6,其中0表示星期日

  用戶名:也就是執行程序要經過哪一個用戶來執行,這個通常能夠省略;

  命令:執行的命令和參數。

  若是我要表示9月10日25分執行ls var/spool/cron任務怎麼表示?

  25 * 10 9 * ls var/spool/cron

  */1 * * * 0 wall Hello redking.blog.51cto.com

  */ 表示每多少分鐘執行一次哈~

  當制定了cron任務後,能夠用crontab -l查看, 也能夠到/var/spool/cron/目錄查看。裏面的文件名字就是對應用戶的cron任務

  可使用crontab -r 來刪除當前用戶的cron

  vim /etc/crontab 與crontab -e寫入的定時運行有什麼區別?

  vim /etc/crontab:是系統級別定義的crontab,/etc/crontab的全部者和組都是root

  crontab -e :是用戶自定義的crontab,是全部的用戶均可以寫入的

  兩種方法記錄的位置不同,一個在/etc/ 另外一個在/var/ 裏面。都被cron服務調用哈~

   3、系統級別的計劃任務及其擴展anacrontab

  anacrontab就是系統計劃任務的擴展文件:在一個指定時間間隔錯事後自動執行任務

  這個是系統設置好了,清理系統垃圾或者是自動執行某些腳本的系統任務,通常咱們作了解就好了,不要更改

  配置文件是/etc/anaconrtab

1. # /etc/anacrontab: configuration file for anacron 2. # See anacron(8) and anacrontab(5) for details. 3. SHELL=/bin/sh 4. PATH=/sbin:/bin:/usr/sbin:/usr/bin 5. MAILTO=root 6. #####格式是這樣的:period(頻率.天數) delay(延遲,分鐘) job- identifier command 7. 1 65 cron.daily run-parts /etc/cron.daily 8. 7 70 cron.weekly run-parts /etc/cron.weekly 9. 30 75 cron.monthly run-parts /etc/cron.monthly   SHELL:就是運行計劃任務的解釋器,默認是bash   PATH:執行命令的環境變量   MAILTO:計劃任務的出發者用戶   HOME:家目錄爲/   run-parts是一個腳本,在/usr/bin/run-parts,做用是執行一個目錄下的全部腳本/程序。   run-parts /etc/cron.hourly執行目錄/etc/cron.hourly/之下的全部腳本/程序.   run-parts下面就是運行的命令   第一行的意思是:天天開機65分鐘後就檢查cron.daily文件是否被執行了,若是今天沒有被執行就執行他   第二行的意思是:每隔7天開機後70分鐘檢查cron.weekly文件是否被執行了,若是一週內沒有被執行就執行他   和at差很少,就是/etc/cron.deny這個配置文件來控制, 同時寫入allow 及deny, 容許.以上就是Linux計劃任務
相關文章
相關標籤/搜索