linux定时任务的实现

mac2024-04-19  6

有时候我们需要删除服务器上一些多余的日志文件,使用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这个脚本
最新回复(0)