Linux的學習--crontab,linux--crontab
之前瞭解過一點crontab,前段時間比較閑,就熟悉了一下,今天總結記錄一下。
crontab命令常見於Unix和類Unix的作業系統之中,用於設定周期性被執行的指令。該命令從標準輸入裝置讀取指令,並將其存放於"crontab"檔案中,以供之後讀取和執行。
什麼時候需要用到crontab呢?如下就是幾個很好的應用情境
- 每分鐘需要執行一個程式檢查系統運行狀態
- 每天淩晨需要對過去一天的業務資料進行統計
- 每個星期需要把記錄檔備份
- 每個月需要把資料庫進行備份
安裝crontab
在ubuntu系統中的安裝如下:
sudo apt-get install cron
時間設定
# 檔案格式說明# ——分鐘 (0 - 59)# | ——小時 (0 - 23)# | | ——日 (1 - 31)# | | | ——月 (1 - 12)# | | | | ——星期 (0 - 7)(星期日=0或7)# | | | | |# * * * * * 被執行的命令
註:
從第六個域起,指明要執行的命令。
crontab命令
crontab [ -u user ] [ -i ] { -e | -l | -r } (default operation is replace, per 1003.2) -e (edit user's crontab) -l (list user's crontab) -r (delete user's crontab) -i (prompt before deleting user's crontab)
crontab例子
每晚21:30重啟nginx
30 21 * * * service nginx restart
每月1, 10, 22日的4:45重啟nginx
45 4 1,10,22 * * service nginx restart
每月1到10日4:45重啟nginx
45 4 1-10 * * service nginx restart
每隔2分鐘重啟nginx伺服器
*/2 * * * * service nginx restart
1-59/2 * * * * service nginx restart
晚上11點到早上7點之間,每隔一小時重啟nginx
0 23-7/1 * * * service nginx restart
每天18:00到23:00之間每隔30分鐘重啟nginx
0,30 18-23 * * * service nginx restart
0-59/30 18-23 * * * service nginx restart
小結
- *表示任何時候到匹配
- 可以用"A,B,C"表示A或者B或者C時執行命令
- 可以用"A-B"表示A到B之間時執行命令
- 可以用"*/A"表示每A分鐘(小時等)執行一次命令