Linux下的定時任務,crontab是一個很是有用的命令(大部分的自動完成的工做都須要用到自動執行命令) php
這裏演示一個很是簡單的定時任務設置。(用來作之後全部複雜的自動化工做的前提)。 前端
先寫個簡單的用來測試的腳本(咱們定義其爲cro.sh 主要就是把當前時間寫入到一個1.txt文本里面) sql
#!/bin/bash 數據庫
echo `date`>>/home/test/1.txt vim
PS:在命令行裏面執行命令須要``這樣的格式,命令就會運行。 bash
而後能夠切換到 測試
vim /etc/crontab spa
用法在這個文件裏已經有詳細的說明 命令行
從左往右依次表明着 分 時 天 月 星期的控制 rest
若是是*/1則表明頻率。
這裏爲了測試,我將其設置爲 1分鐘刷新自動運行一次。(固然這裏直接寫的時候,腳本沒法自動直接運行,須要加上sh)
編輯自動執行任務,則有:
Crontab -e (在看到的自動執行任務裏,咱們加上sh 就是直接讓sh運行cro.sh)
而後切換到前端 用crontab -l 查看當前的定時任務
能夠看到自動執行任務已經添加完成,監測
用tail -f 1.txt
能夠看到當前已經開始正確的進行了記錄。
若是沒有自動重啓任務:service crond restart(可用該命令對服務進行重啓)
實用性自動任務增強實行腳本應用場景舉例:
1.自動備份數據庫(按照年月日進行備份指定的數據庫到指定的目錄)
#!/bin/bash
Mysqldump -uroot -proot test | gzip > /home/bak/test`date +%Y-%m-%d_%H%M%S`.sql.gz
將其保存爲home/bak/baksql.sh
在crontab -e
* * 1 * * sh /home/bak/baksql.sh
這樣就完成了一天自動備份一次數據庫test
2.檢測hhvm腳本是否一直在自動運行
#!/bin/sh
#查全部的進程找到了hhvm
process=`ps aux | grep hhvm | grep -v grep|wc -l`;
if [ "$process" -lt 1 ]; then
/usr/local/bin/hhvm --mode daemon --user www --config /etc/hhvm/server.ini --config /etc/hhvm/php.ini --config /etc/hhvm/config.hdf
else
echo "process hhvm exsits";
fi