配置Linux任務計畫

2022-06-17 04:54:08 字數 3408 閱讀 2334

linux有三種計畫任務:

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

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

系統級別的計畫任務及其擴充套件anacron:在乙個指定時間間隔錯過後自動執行任務

一、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, 允許.

二、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服務呼叫哈~

三、系統級別的計畫任務及其擴充套件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計畫任務

** 

配置Linux任務計畫

標籤 分類 linux linux有三種計畫任務 at 指定乙個時間執行乙個任務 適用乙個或多個任務,執行一次後就不用 cron 根據乙個時間表自動執行任務 使用乙個或多個任務,週期性執行 系統級別的計畫任務及其擴充套件anacron 在乙個指定時間間隔錯過後自動執行任務 一 at服務 安排乙個任務...

Linux任務計畫

at任務 單次定時執行任務 at命令 at option time u常用選項 v 顯示版本資訊 l 列出指定佇列中等待執行的作業 相當於 atq d 刪除指定的作業 相當於 atrm c 檢視具體作業任務 f path from somefile 從指定的檔案中讀取任務 m 當任務被完成之後,將給...

LINUX 任務計畫

任務計畫就是任務迴圈計畫,不用刪除就可以了 crontab 如果有很多執行命令,將這些執行命令放到乙個指令碼裡面按照順序執行 1.crontab 任務執行 19 10 sbin init 6 每天10點19分重啟 分時日月周 2.crontab r 全部刪除任務計畫 3.crontab l 檢視執行...