Linux定時任務的使用
來自: http://my.oschina.net/xiongyuanliang/blog/608802
Linux下的定時任務,crontab是一個非常有用的命令(大部分的自動完成的工作都需要用到自動執行命令)
這里演示一個非常簡單的定時任務設置。(用來做以后所有復雜的自動化工作的前提)。
先寫個簡單的用來測試的腳本(我們定義其為cro.sh 主要就是把當前時間寫入到一個1.txt文本里面)
#!/bin/bash
echo `date`>>/home/test/1.txt
PS:在命令行里面執行命令需要``這樣的格式,命令就會運行。
然后可以切換到
vim /etc/crontab
用法在這個文件里已經有詳細的說明
從左往右依次代表著 分 時 天 月 星期的控制
如果是*/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