首頁 > 軟體

Linux之crontab定時執行指令碼方式

2023-04-08 06:02:21

crontab定時執行指令碼

不廢話,直接上你要的: 

如框框內所示,該命令表示每十分鐘執行一次該目錄下的指令碼檔案,即 /home/alan/test1.sh

Ok,現在具體講一下命令為何這麼寫。

一、什麼是crond,什麼又是crontab

首先crond是linux系統中用來定期執行命令的一種服務當編寫完命令後,系統便會啟動crond任務排程命令,crond會每分鐘定期檢查是否要執行的工作,如果要執行的工作便會自動執行該工作。crond服務就像鬧鐘一樣。

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

說白了,就是crond服務需要通過crontab去實現。

crontab命令格式

選項說明
-u user用於設定某個使用者的定時任務
filefile為命令檔名,表示將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 * * * * : 表示每隔十分鐘就執行一次命令

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com