linux定時任務的實現

有時候我們需要刪除服務器上一些多餘的日誌文件,使用linux的命令
首先要知道linux刪除命令如何寫
find 對應目錄 -mtime +天數 -name “文件名” -exec rm -rf {} \ ;#正號爲一天前,負號爲一天以內

find /root/log/ -mtime +1 -name "*.log" -exec rm -rf {} \;
#含義將/root/log/目錄下所有1天前帶".log"的文件刪除

上面的爲手工敲命令,將命令寫入sh文件
第一步

touch   /root/delete_one_day.sh#創建文件,
chmod +x delete_one_day.sh#賦予可執行權限

第二步

vim delete_one_day.sh
#!/bin/sh
find /root/log/ -mtime +1 -name "*.log" -exec rm -rf {} \;

保存退出(:wq)
計劃任務

crontab -e
*/5 * * * * sh /root/delete_one_day.sh#每五分鐘執行這個.sh文件

場景應用

監控root 目錄下有一個py程序,如果程序由於某種特殊原因突然掛掉,請將其重啓。

思路:
通過找到改程序的進程,可以判斷是否掛掉ps -ef |grep xx.py |grep -v “grep” |wc -l
結果爲1則程序正常,否則程序已經終止
第一步:編寫monitor.sh文件

#!/bin/sh
count=`ps -ef |grep xx.py |grep -v "grep" |wc -l`
echo $count
if [ 0 == $count ];then
nohup python  /xx/xx.py > /xx/xx.log 2>&1 &
echo $count
fi

第二步,設置定時任務

 crontab -e

分 時 日 月 周

          • sh /monitor.sh 表示每分鐘執行一次monitor.sh這個腳本
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章