linux內建的cron程序能幫我們實現這些需求,cron搭配shell指令碼,非常複雜的指令也沒有問題。
cron介紹
我們經常使用的是crontab命令是cron table的簡寫,它是cron的配置檔案,也可以叫它作業列表,我們可以在以下資料夾內找到相關配置檔案。
/var/spool/cron/ 目錄下存放的是每個使用者包括root的crontab任務,每個任務以建立者的名字命名
/etc/crontab 這個檔案負責排程各種管理和維護任務。
/etc/cron.d/ 這個目錄用來存放任何要執行的crontab檔案或指令碼。
我們還可以把指令碼放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目錄中,讓它每小時/天/星期、月執行一次。
apt-get install cron
接著檢查cron服務的狀態,預設情況它應該執行於後台。如果它未啟動,那麼可以手動啟動此服務。
service cron start
service cron status
#crontab的操作命令
crontab [-u username] //省略使用者表表示操作當前使用者的crontab
-e (編輯工作表)
注意: 每次新增完任務後,一定記得重新啟動crond服務,不然不會生效
service cron restart
-l (列出工作表裡的命令)
-r (刪除工作作)
我們用crontab -e進入當前使用者的工作表編輯,是常見的vim介面。每行是一條命令。
crontab的命令構成為 時間+動作,其時間有分、時、日、月、周五種,操作符有
* 取值範圍內的所有數字
* * * * *
分 時 日 月 周
/ 每過多少個數字
- 從x到z
,雜湊數字
crontab 檔案中的行由 6 個字段組成,不同欄位間用空格或 tab 鍵分隔。前 5 個字段指定命令要執行的時間
分鐘 (0-59)
小時 (0-23)
日期 (1-31)
月份 (1-12)
星期幾(0-6,其中 0 代表星期日)
第 6 個字段是乙個要在適當時間執行的字串
每分鐘執行一次
在/root下建立乙個hello.s**件
#!/bin/sh
echo 『hello』
然後進入etc下
#vi crontab(無裝的看上面安裝教程)
*/1 * * * * /root/hello.sh >> /root/hello.txt(存入的名字和位置自選)(一定要絕對路徑)
儲存退出後執行service cron restart,過一分鐘後你就會在/root下看到hello.txt檔案。
#給.s**件足夠的許可權
在上午8點到11點的第3和第15分鐘執行
3,15 8-11 * * * mycommand.sh 與上面的步驟同上
SHELL定時任務詳解
1 crontab檔案的含義 使用者所建立的crontab檔案中,每一行都代表一項任務,每行的每個字段代表一項設定,它的格式共分為六個字段,前五段是時間設定段,第六段是要執行的命令段,格式如下 minute hour day month week command 其中 minute 表示分鐘,可以是...
Shell指令碼 定時任務
yum install vixie cron yum install crontabsservice crond start 啟動服務用以下的方法啟動 關閉這個cron服務 service crond start 啟動服務 service crond stop 關閉服務 service crond ...
Shell指令碼 定時任務簡介
利用 shell指令碼 一篇文章搞定shell指令碼的基礎知識點中的知識我們可以實現很多自動化運維指令碼的編寫,其中很重要的一種就是定時任務。一次性定時任務可以使用命令at來建立,結束建立使用ctrl d,使用atq命令可以來檢視當前使用者下還未執行的一次性計畫任務 root centos8 at ...