Linux Crond執行計畫任務

2021-04-28 11:18:06 字數 3348 閱讀 2457

linux crond

執行計畫任務 1

、迴圈執行的計畫任務

linux

下面有atd

和crond

兩種計畫任務,其中,

atd服務使用的

at命令只能執行一次,而

crond

服務使用的

crontab

定義的命令,是迴圈作用的,所以

crond

才符合我們的要求。

crontab

支援兩種狀態:一、直接編寫計畫任務;二、使用目錄的方式,放在目錄裡面的都會定時執行。

2、可以使用的使用者

預設情況下,系統中可以登陸的使用者,都可以使用

crontab

定義計畫任務。不過,可以通過下面兩個檔案限制許可權:

/etc/cron.allow

:將可以使用

crontab

的賬號寫入其中,若不在這個檔案內的使用者則不能使用

crontab

;/etc/cron.deny

:將不可以使用

crontab

的賬號寫入其中,若未記錄到這個檔案當中的使用者,就可以使用

crontab。類似

定義的方式。

3、直接使用

crontab

編輯計畫任務:

命令:crontab [-u username] [-l|-e|-r]

引數:-u

:通過-u

幫其它使用者建立/移除

crontab

;-e

:編輯crontab

的內容-l

:檢視crontab

的內容-r

:移除crontab

的所有內容(是全部的內容,如果只是刪除某個,用

-e編輯即可)

內容格式:

* * * * *

命令前面的五個

*號,表示分、時、日、月、周,如:

代表意義

分鐘小時

日期月份

周數字範圍

0-59 0-23 1-31 1-12 0-7

*號代表任何時間都接受的意思,任意。

*號之間用空格分開,如果是一段範圍,用

-號連線;如果是隔開幾個時間,用

,號表示。

另外,命令必須是編寫計畫任務的使用者有許可權執行的,並且最後用絕對路徑。

例如:#crontab -e

59 23 1 5 * mail linuxing < /home/test.txt每在5

月1日,

23點59分就把

/home/test.txt

的內容作為郵件發給

linuxing

使用者*/5 * * * * /opt/test.sh每5

分鐘就執行一次

/opt/test.sh

指令碼0 3,6 * * * /usr/local/bin/test.sh每在3

點和6點整點都執行

/usr/local/bin/test.sh

命令0 8-12 * * * /root/backup.sh

8 點到

12 點之間的每小時的

0分都執行

/root/backup.sh

4、基於目錄的方式執行計畫任務

對於系統的計畫任務,已經在

/etc/crontab

裡面定義,採用的就是基於目錄的方式。系統會定時讀取該檔案,並根據裡面的定義執行命令。

可以使用

vi直接編寫

/etc/crontab

檔案,其中格式如下:

#cat /etc/crontab

shell=/bin/bash #

使用的shell

path=/sbin:/bin:/usr/sbin:/usr/bin #

預定義的

path

路徑mailto=root #

出現問題發

email

給該使用者

home=/ #

家目錄# run-parts

01 * * * * root run-parts /etc/cron.hourly #

每小時的目錄

02 4 * * * root run-parts /etc/cron.daily #

每天22 4 * * 0 root run-parts /etc/cron.weekly #

每週日42 4 1 * * root run-parts /etc/cron.monthly #

每個月1號分

時日月周

執行者身份

命令可以看到前面的五個引數的定義和直接編輯計畫任務是一樣的,增加了執行的使用者定義和

run-parts

引數。run-parts

後面跟的是目錄名稱,例如:

/etc/cron.hourly

,表示每小時

01分就到

/etc/cron.hourly

目錄中執行目錄下的所有可執行檔案;當然,目錄是可以自己定義的。

如果你需要增加系統的計畫任務,只需要在對應的目錄新增執行檔案即可,例如:我需要在每天都執行

updatedb

的操作,則我只需要把

/usr/bin/updatedb

的執行命令鏈結到

/etc/cron.daily

目錄就可以了。

同樣的,如果不需要使用目錄的方式,也可以使用如下的方式:

02 01 * * * root /root/test.sh

也就是沒有了

run-parts

,後面就直接跟命令的絕對路徑

5、注意事項

如果使用

crontab

編輯計畫任務或直接修改

/etc/crontab

檔案後,計畫任務沒有生效,可能需要重啟一下

crond

服務:service crond restart

當編寫/etc/crontab

檔案的時候,不要漏了指定執行計畫任務的使用者,這是和直接用

crontab -e

編輯不同的。

某使用者(如

root

)用crontab -e

編輯的計畫任務存放在

/var/spool/cron/root

,這個檔案下。但最好不要直接編輯他,因為

crond

執行的時候,會在

/tmp

目錄中建立需要的臨時檔案,直接編輯會對此有影響,甚至出錯。

cron

執行的每一項工作都會被紀錄到

/var/log/cron

這個日誌檔案中,可以從這個檔案檢視命令執行的狀態。

Linux Crond執行計畫任務

1 迴圈執行的計畫任務 linux下面有atd和crond兩種計畫任務,其中,atd服務使用的at命令只能執行一次,而crond服務使用的crontab定義的命令,是迴圈作用的,所以crond才符合我們的要求。crontab支援兩種狀態 一 直接編寫計畫任務 二 使用目錄的方式,放在目錄裡面的都會定...

ocacle 執行計畫 Oracle執行計畫

一 什麼是oracle執行計畫?執行計畫是一條查詢語句在oracle中的執行過程或訪問路徑的描述 二 怎樣檢視oracle執行計畫?因為我一直用的plsql遠端連線的公司資料庫,所以這裡以plsql為例 配置執行計畫需要顯示的項 工具 首選項 視窗型別 計畫視窗 根據需要配置要顯示在執行計畫中的列 ...

mysql執行計畫 MySQL 執行計畫

1.執行計畫的定義 什麼是執行計畫 查詢計畫 呢?執行計畫就是一系列的操作步驟。sql是宣告性語言,它只告訴資料庫要查詢什麼,但並不告訴資料庫如何去查。資料庫所要做的就是基於演算法和統計資訊計算出一條最佳的訪問路徑。這個工作是由優化器來完成的。優化器會比較不同的執行計畫,然後選擇其中最優的一套。2....