1. 程式人生 > >定時任務操作shell指令碼

定時任務操作shell指令碼

#crontab的介紹

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目錄中,讓它每小時/天/星期、月執行一次。

#unbuntu下crontab的使用
#安裝crontab

[email protected]:~# apt-get install cron
接著檢查cron服務的狀態,預設情況它應該運行於後臺。如果它未啟動,那麼可以手動啟動此服務。
[email protected]:~# service cron start
[email protected]:~# 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 個欄位是一個要在適當時間執行的字串

#2.crontab實際操作

每分鐘執行一次

在/root下建立一個hello.sh檔案
#!/bin/sh
echo ‘hello’

然後進入etc下
#vi crontab(無裝的看上面安裝教程)
*/1 * * * * /root/hello.sh >> /root/hello.txt(存入的名字和位置自選)(一定要絕對路徑)
儲存退出後執行service cron restart,過一分鐘後你就會在/root下看到Hello.txt檔案。
#給.sh檔案足夠的許可權

在上午8點到11點的第3和第15分鐘執行

3,15 8-11 * * * myCommand.sh   與上面的步驟同上

每晚的21:30重啟smb

30 21 * * * /etc/init.d/smb restart

#centos下定時任務
定時任務
我自己的服務啟動:/bin/systemctl start crond.service