Linux系統定時任務

2021-07-05 09:43:11 字數 1580 閱讀 6045

我們知道,在windows系統中有定時任務,在控制面板-管理工具-任務計畫程式設定任務可以在指定的時間執行指定的程式或其他工作。那麼在linux中也有這個功能,而支援這個功能的服務就是crond服務。在linux中這個服務是預設安裝的,也是開機自啟動的。

我們可以通過chkconfig --list |grep crond命令檢視這個服務的啟動情況。

在這裡順便說一下服務的啟動情況,service 服務名 start 是啟動服務,這是redhat支援的service命令,如果沒有這個命令,可以直接找到指令碼來啟動。

(順便說一下,rpm包安裝的服務可以使用chkconfig 服務名稱 on設定自啟動)

既然是crond服務來進行定時任務,那怎麼使用呢?

那就要靠這個服務的命令了。

crondtab -l//檢視定時任務

crondtab -e//編輯定時任務

crondtab -r//刪除所有定時任務

*/1 * * * * echo m "eeee" >>/tmp/test這個任務就是每分鐘向/tmp/test檔案中寫入一遍「eeee」。

0 5 * * * /root/test.sh這個任務就是每天凌晨五點執行這個指令碼。

使用:wq儲存後,可以使用crontab -l 就會列出這兩個任務。 

如果不想使用這些任務了,就可以使用crontab -r 命令全部刪除。如果只想刪除某乙個,那當然是再使用crontab -e進去刪掉不再使用的任務。

下面說一下定時的符號說明

* * * * *  這是定時命令。

第乙個*表示每個小時的第幾分鐘  10 * * * * 這個代表的是每小時的第10分鐘,而不是每隔10分鐘。

第二個*表示小時(0-23)

第三個* 表示天數(0-31)

第四個*表示月份(1-12)

第五個*表示週幾(0-7)0與7都是週日

*是任何時間 

,表示不連續的時間 例如: 2,6,8 * * * * 表示每小時的第2,6,8分鐘執行一遍。

-表示連續的時間 例如: 1-10 * * * * 表示每小時的1到10分鐘

/表示每隔多久時間  例如: */10 * * * * 表示每隔10分鐘

再舉幾個例子理解一下:

45 22 *** 在22點45分執行命令

0 17 * * 1 每週一的17點0分執行

0 5 1,15 * * 表示每個月的1號與15號的凌晨五點執行

40 4 * * 1-5 表示每週1至周5的凌晨4點40執行

*/10 4 * * * 每天凌晨4點每隔10分執行一次,也就是凌晨4點執行6次

0 0 1,15 * 1 意思是每個月的1號,15號或者是每週一 凌晨零點都執行一次。(注意:這裡是或的關係,不是並的關係,也就是說不要理解成:在每個月的1號或者15號並且是周一才執行)

Linux 系統定時任務

部落格整理於 目的 讓我們的計算機在指定的時間完成指定的任務,可以是系統的乙個命令,也可以是我們之前寫好的乙個指令碼。比如說,我們的伺服器晚上的時候 壓力比較小 定時拷貝資料庫,日誌。可以讓我們可以從重複勞動中解脫。windows當中也有這樣的功能 在附件中的 任務計畫程式 1.1確定at安裝 檢視...

Linux系統定時任務

systemctl start crond systemctl enable crond注意 crond服務一般預設就是啟動和自啟動的,所以一般不需要手動開啟。e 編輯crontab定時任務 l 查詢crontab任務 r 刪除當前使用者所有的crontab任務 代表任何時間。例如第乙個 就代表乙個...

linux定時任務 at定時任務

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