18 定時任務

2022-07-16 03:06:13 字數 2584 閱讀 3543

你可以把定時任務理解為乙個鬧鐘。

#crontab表示式

* * * * *

分 時 日 月 周

每天的凌晨2點 02:00 00 02 * * *

每月執行一次 00 00 01 * *

每個月的一號零點零時零分同時這一天時星期六 00 00 01 * 6

1、/etc/crontab

2、如下的目錄

/etc/cron.hourly/ # 系統定時任務每個⼩時運⾏這個⽬錄⾥的內容

/etc/cron.daily/ # 系統定時任務每天運⾏這個⽬錄⾥的內容

/etc/cron.weekly/ # 系統定時任務每週運⾏這個⽬錄⾥的內容

/etc/cron.monthly/ # 系統定時任務每⽉運⾏這個⽬錄⾥的內容

crontab -e

-e : 編輯計畫任務

-l : 檢視計畫任務

# 注:使用者級別的計畫任務存放在/var/spool/cron/,不同的使用者存放的計畫任務是以其自己的名字命名的指令碼

* 表示任意的(分、時、⽇、⽉、周)時間都執⾏

- 表示⼀個時間範圍段, 如5-7點

, 表示分隔時段, 如6,0,4表示週六、⽇、四

/1 表示每隔n單位時間, 如*/10 每10分鐘

#案例

# 1 3 5

00 00 1,3,5 * *

# 1到5號

00 00 1-5

# 每幾分鐘,每幾個小數,每幾天

0/2 /2

00 0/2 00 /2

00 00 0/2 00 00 /2

1.⼿動執⾏命令,然後保留執⾏成功的結果。

2.編寫指令碼

指令碼需要統⼀路徑/scripts 指令碼內容複製執⾏成功的命令(減少每個環節出錯⼏率)

3.執⾏指令碼

使⽤bash命令執⾏, 防⽌指令碼沒有增加執⾏許可權(/usr/bin/bash /bin/bash) 執⾏指令碼成功後,複製該執⾏的命令,以便寫⼊cron

4.編寫定時任務

加上必要的注釋資訊, ⼈、時間、任務

設定定時任務執⾏的週期

貼上執⾏指令碼的命令(不要⼿敲)

5.除錯定時任務

增加任務頻率測試

檢查環境變數問題(最好在指令碼中重新定義環境變數path)

檢查crond服務⽇志

1.定時任務規則之前加注釋

2.使⽤指令碼執⾏定時任務(只有⼀條簡單命令的可以直接使⽤命令執⾏)

3.運⾏指令碼⼀定要⽤絕對路徑執⾏,統⼀指令碼位置。

4.定時任務中date命令的百分號需轉義才能使⽤。

5.命令或指令碼結果(正確及錯誤)定向到空(>/dev/null 2>&1)或追加到⽂件中 >>/tmp/oldboy.txt 2>&1

6.避免不必要的程式及命令輸出,如打包命令,tar -v的顯示過程的選項。

7.打包壓縮使⽤相對路徑(切到⽬標⽬錄的上⼀級打包⽬標)

8.定時任務指令碼中的程式⽂件 ,盡量⽤絕對路徑,⽤戶的定時任務中的⽂件預設存放在當前⽤戶的家⽬錄

9.系統與命令位置有關的環境變數問題,建議指令碼中重新定義環境變數path。

#每天的凌晨2點整執⾏

00 02 * * *

#每⽉的1⽇的凌晨2點整執⾏

00 02 1 * *

#每年的2⽉14⽇凌晨2點執⾏

00 02 14 02 *

#每週天的凌晨2點整執⾏

00 02 * * 0

#每年的6⽉周五凌晨2點執⾏

00 02 * 6 5

#每⽉14⽇或每週⽇的凌晨2點都執⾏

00 02 14 * 7

#每年的2⽉14⽇或每年2⽉的周天的凌晨2點執⾏

00 02 14 02 7

#每天凌晨2點,每隔10分鐘執⾏⼀次

0/10 02 * * *

#每分鐘都執⾏

* * * * *

#每年2⽉14⽇的凌晨執⾏命令

00 00 14 2 *

#每隔5分鐘執⾏⼀次

00/5 * * * *

#每年的1⽉5⽉8⽉凌晨2點執⾏

00 02 * 1,5,8 *

#每⽉1號到8號凌晨2點執⾏

00 02 1-8 * *

#每天晚上21:00執⾏

00 21 * * *

#每⽉1、10、22⽇的4:45執⾏

45 04 1,10,22 * *

#每⽉1到10⽇的4:45執⾏

45 04 1-10 * *

#每隔兩天的上午8點到11點的第3和第15分鐘執⾏

3,15 8-11 0/2 * *

#晚上11點到早上7點之間,每隔兩⼩時執⾏

* 23-7/2 * * *

#周⼀到周五每天晚上21:15執⾏

15 21 * * 1-5

linux定時任務 at定時任務

at命令是一次性定時計畫任務,at的守護程序atd會以後臺模式執行,檢查作業佇列來執行作業。atd守護程序會檢查系統上的乙個特殊目錄來獲取at命令的提交的作業,預設情況下,atd守護程序每60秒檢查一次目錄,有作業時,會檢查作業執行時間,如果時間與當前時間匹配,則執行此作業。注意 at命令是一次性定...

at定時任務

at的守護程序每60秒檢查一次作業佇列,有作業時檢查作業,時間恰好達到,則執行作業。前提 保證atd程序已經啟動,檢查atd程序是否啟動 ps ef grep atd。atd的命令格式 at 選項 時間 ctrl d 結束at命令的輸入。選項 m 任務完成後給使用者傳送郵件,沒有標準輸出。i atg...

at定時任務

1 at是只執行一次,執行完後任務刪除。at的守護程序atd會以後臺模式執行,檢查作業佇列來執行。2 預設 atd每60秒巡邏一次,有作業時候,檢查作業時間,如果和當前時間一樣,就執行任務 3 在使用at命令的時候,一定要保證他的守護者atd程序的啟動。用ps ef grep atd來檢視atd是否...