Cron 定時任務命令 配置檔案詳解

2022-06-17 14:00:13 字數 3449 閱讀 5477

1.系統級別的定時任務

​ 臨時檔案清理

​ 系統資訊採集

​ 日誌檔案切割

2.使用者級別的定時任務

​ 定時向網際網路同步時間

​ 定時備份系統配置檔案

​ 定時備份資料庫的資料

# 定時任務,服務啟動和停止

# c6

/etc/init.d/crond start

/etc/init.d/rond/ stop

# c7

systemctl start crond

systemctl stop crond

[root@gong ~]# cat /etc/crontab 

shell=/bin/bash # 定時任務的shell

path=/sbin:/bin:/usr/sbin:/usr/bin # 環境變數

mailto=root # 執行錯誤之後,會給root使用者傳送mail

# for details see man 4 crontabs

# example of job definition:

# .---------------- minute (0 - 59)

# | .------------- hour (0 - 23)

# | | .---------- day of month (1 - 31)

# | | | .------- month (1 - 12) or jan,feb,mar,apr ...

# | | | | .---- day of week (0 - 6) (sunday=0 or 7) or sun,mon,tue,wed,thu,fri,sat

# | | | | |

# * * * * * user-name command to be executed

tail -f /var/log/cron # 記錄日誌的位置

寫定時任務的時候需要注意:

- 寫命令的時候需要使用絕對路徑,因為配置檔案路徑的原因容易導致找不到命令。

- 複雜命令給或者多個命令盡量寫到指令碼中

- 定時任務中所有的輸出內容全部放到/dev/null

- 一般周和日不會共存

- 編輯指令碼的時候注意注釋,方便檢視作用

fbi warning

path 出現的目錄,下面可執行檔案,都可以不加路徑直接執行。注意執行指令碼的時候指令碼執行許可權的影響。

# for details see man 4 crontabs

# example of job definition:

# .---------------- minute (0 - 59)

# | .------------- hour (0 - 23)

# | | .---------- day of month (1 - 31)

# | | | .------- month (1 - 12) or jan,feb,mar,apr ...

# | | | | .---- day of week (0 - 6) (sunday=0 or 7) or sun,mon,tue,wed,thu,fri,sat

# | | | | |

# * * * * * user-name command to be executed

* * * * * command

分 時 日 月 周

分 0-59

時 0-23

日 0-31

月 1-12

周 0-6

# 每天凌晨2點執行ls命令

0 2 * * * ls

# 每個月1號執行凌晨兩點執行ls

0 2 1 * * ls

# 每月1號和15號12點都執行一次ls命令

0 12 1,15 * * ls

# 每月1號到15號12點都執行一次ls命令

0 12 1-15 * * ls

# 每年的2月14日凌晨2點,執行ls命令

0 2 14 2 * ls

# 每週日凌晨2點執行ls命令

0 2 * * 7 ls

# 每年6月份周五凌晨2點執行ls命令

0 2 * 6 5 ls

# 每個月的14號並且是週日,凌晨兩點執行ls

0 2 14 * 7

# 滿足每年的2月14日時候是週日的時候執行ls

0 2 14 2 7 ls

# 在每天凌晨2點這個時段,每10分鐘執行一次,在2:00這個時刻會執行。

*/10 2 * * * ls

# 沒分鐘執行一次ls

* * * * * ls

*/1 * * * * ls

# 每年2月14日凌晨00點,執行ls

0 0 14 2 * ls

# 每5min執行一次,至儲存的時候開始

*/5 * * * * ls

# 每年的1月和5月和8月每天晚上凌晨2點執行ls

00 2 1,5,8 * ls

# 在每年1到7月和9-12月的每天凌晨2點執行ls

00 02 1-7,9-12 * ls

# 每個月的1-8號執行,凌晨2點執行ls

00 02 1-8 * *

# 每個月的1號和10號和22號的凌晨4點45分執行ls命令

45 04 1,10,22 * * ls

# 每個月的每2天的8點到11點的3分和15分執行ls命令 ---------跨月的時候

3,15 8-11 */2 * * /bin/ls

4月28號,8點03分 和 8點15分,9點03分 和9點15分 , 10點03分和10點15分,11點03分和11點15分執行ls命令

4月30號

5月1號

5月3號

# 每天的00點-7點的每個小時和23點-00點的每個小時都執行ls命令

0 23-7/1 * * * /bin/ls

# 每週一到周五的晚上21點15分執行ls命令

15 21 * * 1-5 /bin/ls

-e			# edit 編輯配置檔案/var/spool/cron/root

-l # 檢視當前定時任務,在讀取/var/spool/cron/root目錄下的配置檔案

-r # remove 刪除定時任務

-u # 指定使用者

# 刪除指定使用者的定時任務

[root@gong ~]# crontab -r -u root

1.命令列,測試是否能執行成功

​ sh -x 除錯指令碼

2.加快定時的頻率,測試定時任務是否能執行成

3.修改時間

Cron 定時任務

一般系統都會有定時任務存在,比如訂單系統,會根據定時任務來實時同步訂單狀態,同步交易狀態等等。定時任務可以使用quartz 定時任務,也可以自己寫乙個任務排程系統,只要能實現功能就可以。下面我簡單介紹一下quartz 定時任務配置,需要配置三個bean,分別為 quartz,trigger,sche...

Cron定時任務

完整的是七位 秒 分鐘 小時 日 月 星期 年 有的沒有這個年 0 0 12 每天中午12點觸發 0 15 10 每天上午10 15觸發 0 15 10 每天上午10 15觸發 0 15 10 每天上午10 15觸發 0 15 10 2005 2005年的每天上午10 15觸發 0 14 在每天下午...

Cron定時任務

cron cron表示式是乙個字串,字串以5或6個空格隔開,分為6或7個域,每乙個域代表乙個含義,cron有如下兩種語法格式 seconds minutes hours dayofmonth month dayofweek year或 seconds minutes hours dayofmonth...