crontab定時執行腳本
不廢話,直接上你要的:?
如框框內所示,該命令表示每十分鐘執行一次該目錄下的腳本文件,即 /home/alan/test1.sh
Ok,現在具體講一下命令為何這么寫。
一、什么是crond,什么又是crontab
首先crond是linux系統中用來定期執行命令的一種服務。當編寫完命令后,系統便會啟動crond任務調度命令,crond會每分鐘定期檢查是否要執行的工作,如果要執行的工作便會自動執行該工作。crond服務就像鬧鐘一樣。
而crontab是用于設置周期性被執行的指令,該命令從標準輸入設備讀取指令,并將其存放于“crontab”文件中,以供之后讀取與執行。
說白了,就是crond服務需要通過crontab去實現。
crontab命令格式
選項 | 說明 |
---|---|
-u user | 用于設定某個用戶的定時任務 |
file | file為命令文件名,表示將file作為crontab的任務列表文件并載入crontab |
-e | 編輯某個用戶的定時任務,如不指定用戶則表示當前用戶 |
-l | 顯示某個用戶的定時任務,如不指定用戶則表示當前用戶 |
-r | 刪除某個用戶的定時任務,如不指定用戶則表示當前用戶 |
-i | 在除某個用戶的定時任務時給確認提示 |
二、安裝crond
1.首先檢查是否安裝過crond
yum?list?installed?|?grep?"crond"
2.安裝crond (centos 7)
-
systemctl status crond:查看 crond 服務狀態。
-
systemctl start crond:啟動 crond 服務。
-
systemctl stop crond:關閉 crond 服務。
-
systemctl restart crond:重啟 crond 服務。
-
systemctl reload crond:重新載入 crond 服務。
如果是centos 7 以下版本,則寫成 service crond status/start/….即可。
三、如何使用crontab
如圖所示:
除過#注釋符,從左到右總共有五個*號,分別代表分鐘,小時,幾號,月份,星期幾。
在后面跟的是執行任務的用戶,后面跟的是執行的命令或者腳本文件(腳本文件需要帶上絕對路徑目錄哦,比如我的就是/home/alan/test1.sh)
星號具體含義及范圍(從左到右):
星號 | 含義 | 時間范圍 |
---|---|---|
* | 一小時當中的第幾分鐘(minute) | 0-59 |
* | 一天當中的第幾小時(hour) | 0-23 |
* | 一個月當中的第幾天(day) | 1-31 |
* | 一年當中的第幾個月(month) | 1-12 |
* | 一周當中的星期幾(week) | 0-7(0和7都代表星期日) |
除*外還有些其他符號有特殊含義哦
比如:
符號 | 含義 | 說明 |
---|---|---|
*(星號) | 表示任意時間 | * 6 * * * :表示每天6點的每分鐘都執行一次命令 |
,(逗號) | 用逗號隔開表示該字段的取值 | 10 8,9,10,* * * :表示在每天8:10,9:10,10:10都執行一遍命令 |
-(中桿) | 表示兩個整數之間的取值范圍 | * 6 * * 1-2 :表示每周一至周二的6點執行命令 |
/(正斜杠) | 表示間隔多久執行一次 | */10 * * * * : 表示每隔十分鐘就執行一次命令 |