Linux Crontab設定定時任務

2021-10-24 05:37:19 字數 3493 閱讀 9217

crontab命令用於設定週期性被執行的指令。該命令從標準輸入裝置讀取指令,並將其存放於「crontab」檔案中,以供之後讀取和執行。

1.檢查是否安裝了crontab,如果提示未安裝請自行安裝,crontab安裝包在系統光碟裡面的pacekage資料夾crontabs安裝包。

rpm -qa | grep crontab
安裝crontab

yum install vixie-cron

yum install crontabs

vixie-cron軟體包是cron的主程式; 

crontabs軟體包是用來安裝、卸裝、或列舉用來驅動 cron 守護程序的**的程式。

2.crontab服務啟動與關閉。

/etc/init.d/crond stop           --關閉服務

/etc/init.d/crond start          --啟動服務

/etc/init.d/crond restart        --重啟服務

/etc/init.d/crond reload         --重新載入配置

service crond status     //檢視狀態

chkconfig crond on //設定開機自動啟動crond服務

chkconfig –list crond //開機級別的crond服務運**況 ,2、3、4、5級別開機會自動啟動crond服務

chkconfig crond off //取消開機自動啟動crond服務

執行的指令碼:(兩種)

1)、在命令列輸入: crontab -e 然後新增相應的任務,wq存檔退出。

crontab -l //列出當前的所有排程任務 

crontab -l -u jp //列出使用者jp的所有排程任務

crontab -r //刪除所有任務排程工作

前四行是有關設定cron任務執行的環境變數。

1、shell:變數的值指定系統使用的shell環境(該樣例為bash shell),

2、path:變數定義了執行命令的路徑。

3、mailto: cron的輸出以電子郵件的形式發給mailto變數定義的使用者名稱。如果mailto變數定義為空字串(mailto=""),電子郵件不會被傳送。

4、home: 執行命令或指令碼時home變數可用來設定基目錄

3.crontab用於配置定時任務,主要引數是:

-e:編輯當前使用者的定時任務

-r:刪除當前使用者的定時任務

-l:列出當前使用者的定時任務

4.其一般格式是:

* * * * * shell_command

# 第乙個*號表示分鐘:範圍在0-59

# 第二個*號表示小時:0-23

# 第三個*號表示乙個月的第幾天:1-31

# 第四個*號表示月份:1-12;或者英文縮寫,例如jan等

# 第五個*號表示星期:0-6,(星期天=0或者7);或者英文縮寫,例如sun,mon,fri等

# shell_command:命令列指令碼命令

# 每天凌晨1:30執行

30 1 * * * echo "test_crontab" >> /home/test_crontab.log

# 每週一到周五的中午12點執行

0 12 * * 1-5 /home/test_crontab/test.sh

# 每個月15號的2點鐘執行

0 2 15 * * /home/test_crontab/test.sh

# 每天的2:30和17:30執行

30 2,17 * * * /home/test_crontab/test.sh

# 每10分鐘執行

*/10 * * * * /home/test_crontab/test.sh

# 每2小時執行

0 */2 * * * /home/test_crontab/test.sh

# 在每年的6月份,每天8-12點,每隔2小時執行

0 8-12/2 * 6 * /home/test_crontab/test.sh

# 每天的8-18點,每隔2小時的15分執行

15 8-18/2 * * * /home/test_crontab/test.sh

# 1月1日早上4點

0 4 1 1 * command line shell=/bin/bash path=/sbin:/bin:/usr/sbin:/usr/bin mailto=root //如果出現錯誤,或者有資料輸出,資料作為郵件發給這個帳號 home=/

# 每小時執行/etc/cron.hourly內的指令碼

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

# 每天執行/etc/cron.daily內的指令碼

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

# 每星期執行/etc/cron.weekly內的指令碼

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

# 每月去執行/etc/cron.monthly內的指令碼

42 4 1 * * root run-parts /etc/cron.monthly

注意: "run-parts"這個引數了,如果去掉這個引數的話,後面就可以寫要執行的某個指令碼名,而不是資料夾名。

# 每週一,三,五的下午3:00系統進入維護狀態,重新啟動系統。

00 15 * * 1,3,5 shutdown -r +5

6.特殊字元:

星號(*):代表每的意思,例如month欄位如果是星號,則表示每月都執行該命令操作。

逗號(,):表示分隔時段的意思,例如,「1,3,5,7,9」。(英文的逗號)

中槓(-):表示乙個時間範圍,例如「2-6」表示「2,3,4,5,6」。

正斜線(/):可以用正斜線指定時間的間隔頻率,例如「0-23/2」表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute欄位,表示每十分鐘執行一次。

兩個大於號(>>):表示輸出結果重定向到指定檔案,以便檢視執行過程和結果

7.查詢定時任務執**況:

cat /var/log/cron

或者:cat /var/spool/mail/root

# 通過mail檢視,root此時表示當前使用者;其他使用者也有對應mail檔案

如果結果檔案內容太長,可以使用 more 或 less 或 tail 等檢視。

Linux crontab設定定時任務

crontab用於定時任務 crontab e 編輯 crontab l 檢視任務 crontab r 刪除任務 慎用 command minute hour day month week command 分 時 天 月 星期 命令 minute 表示分鐘,可以是從0到59之間的任何整數。hour ...

Linux crontab設定定時任務

crontab用於定時任務 crontab e 編輯 crontab l 檢視任務 crontab r 刪除任務 慎用 command minute hour day month week command 分 時 天 月 星期 命令minute 表示分鐘,可以是從0到59之間的任何整數。hour 表...

Linux Centos7 設定MySql定時備份

一 檢視是否安裝了必要的元件 root localhost rpm qa grep cron cronie 1.4.11 14.el7 2.1.x86 64 cronie anacron 1.4.11 14.el7 2.1.x86 64 crontabs 1.11 6.20121102git.el7...