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这个脚本

猜你喜欢

转载自blog.csdn.net/qq_34237321/article/details/102837159
今日推荐