VPS或者server上經常會需要VPS或者server上經常會需要定時備份數據、定時運行從新啓動某個服務或定時運行某個程序等等,通常在Linux使用Crontab,Windows如下是用計劃任務(Win的都是圖形界面設置比較簡單),如下主要介紹Linux VPS/server上Crontab的安裝及使用。php
Crontab是一個Unix/Linux系統下的常常使用的定時執行工具,可以在無需人工干預的狀況下執行指定做業。編輯器
yum install vixie-cron crontabs //安裝Crontabphp-fpm
chkconfig crond on //設爲開機自啓動
service crond start //啓動工具
說明:vixie-cron軟件包是cron的主程序。crontabs軟件包是用來安裝、卸裝、 或列舉用來驅動 cron 守護進程的表格的程序。post
apt-get install cron //大部分狀況下Debian都已安裝。spa
/etc/init.d/cron restart //從新啓動Crontabrest
輸入crontab任務命令時可能會因爲crontab默認編輯器的不一樣。日誌
如上圖所看到的爲nano編輯器。使用比較簡單,直接在文件末尾按crontab命令格式輸入就能夠,Ctrl+x退出,再輸y 回車保存。server
第二種是vi編輯器,首先按i鍵,在文件末尾按crontab命令格式輸入。再按ESC鍵。再輸入:wq 回車就能夠。進程
格式: | minute | hour | dayofmonth | month | dayofweek | command |
解釋: | 分鐘 | 小時 | 日期 | 月付 | 周 | 命令 |
範圍: | 0-59 | 0~23 | 1~31 | 1~12 | 0~7。0和7都表明週日 |
在crontab中咱們會經常常使用到* , - /n 這4個符號,好吧仍是再畫個表格。更清楚些:
符號 | 解釋 |
*(星號) | 表明所有有效的值。 如:0 23 * * * backup 不論幾月幾日周幾的23點整都運行backup命令。 |
,(逗號) | 表明切割開多個值。如:30 9 1,16,20 * * command 每個月的一、1六、20號9點30分運行command命令。 |
-(減號) | 表明一段時間範圍。 如0 9-17 * * * checkmail 天天9點到17點的整點運行checkmail命令 |
/n | 表明每隔n長時間。如*/5 * * * * check 每隔5分鐘運行一次check命令。與0-59/5同樣。 |
如下舉一些樣例來加深理解:
天天凌晨3:00運行備份程序:0 3 * * * /root/backup.sh
每週日8點30分運行日誌清理程序:30 8 * * 7 /root/clear.sh
每週1周5 0點整運行test程序:0 0 * * 1,5 test
每一年的5月12日14點運行wenchuan程序:0 14 12 5 * /root/wenchuan
每晚18點到23點每15分鐘從新啓動一次php-fpm:*/15 18-23 * * * /etc/init.d/php-fpm