小鸡真爱无疑 大佬有话说 :
当CPU小于11%就重启nginx的计划任务shell,球大佬指点
本帖最后由 小鸡真爱无疑 于 2023-1-30 00:36 编辑
如题,怎么写,5分钟自动检测一次,cpu小于11%,就重启nginx,球大佬指点,
还得靠自己,才能丰衣足食,代码奉上
TIME_INTERVAL=5
time=$(date "+%Y-%m-%d %H:%M:%S")
LAST_CPU_INFO=$(cat /proc/stat | grep -w cpu | awk ‘{print $2,$3,$4,$5,$6,$7,$8}’)
LAST_SYS_IDLE=$(echo $LAST_CPU_INFO | awk ‘{print $4}’)
LAST_TOTAL_CPU_T=$(echo $LAST_CPU_INFO | awk ‘{print $1+$2+$3+$4+$5+$6+$7}’)
sleep ${TIME_INTERVAL}
NEXT_CPU_INFO=$(cat /proc/stat | grep -w cpu | awk ‘{print $2,$3,$4,$5,$6,$7,$8}’)
NEXT_SYS_IDLE=$(echo $NEXT_CPU_INFO | awk ‘{print $4}’)
NEXT_TOTAL_CPU_T=$(echo $NEXT_CPU_INFO | awk ‘{print $1+$2+$3+$4+$5+$6+$7}’)
#系统空闲时间
SYSTEM_IDLE=`echo ${NEXT_SYS_IDLE} ${LAST_SYS_IDLE} | awk ‘{print $1-$2}’`
#CPU总时间
TOTAL_TIME=`echo ${NEXT_TOTAL_CPU_T} ${LAST_TOTAL_CPU_T} | awk ‘{print $1-$2}’`
CPU_USAGE=`echo ${SYSTEM_IDLE} ${TOTAL_TIME} | awk ‘{printf "%.2f", 100-$1/$2*100}’`
echo "CPU Usage:${CPU_USAGE}%"$time
cpu=`echo "$CPU_USAGE" | cut -d "." -f 1`
if [ $cpu -le 11 ]
then
echo "草 又死机了"
/etc/init.d/nginx restart
else
echo "嘻嘻没事哦"
fi
dragonfsky 大佬有话说 :
你这是玩什么骚操作
小鸡真爱无疑 大佬有话说 :
dragonfsky 大佬有话说 : 2023-1-29 23:30
你这是玩什么骚操作
服务器总是会自动歇逼,过一小时或者几小时,自动好,如果发现了,重启nginx就好了。排查不出问题
Laa 大佬有话说 :
是nginx挂了?systemd加个自动重启就行了
小鸡真爱无疑 大佬有话说 :
Laa 大佬有话说 : 2023-1-29 23:34
是nginx挂了?systemd加个自动重启就行了
不是nginx挂了,就是不知道哪里挂了,只知道重启nginx可以解决问题。就算不操作,过个几小时,也能自己恢复
FranzkafkaYu 大佬有话说 :
写个while循环,循环体内可以通过top或者sysstat子命令或者CPU的idle状态,若满足条件就systemctl 重启nginx,不过这东西治标不治本,把CPU异常的根本原因找到才是真的
城里的月光 大佬有话说 :
本帖最后由 城里的月光 于 2023-1-30 02:08 编辑
#!/bin/bash
idle = top -n 1 |grep %Cpu | awk-F " " ‘{print $8}’
if [ $idle < 10 ]; then
systemctl restart nginx
fi
提示变量有问题 就改成idle = top -n 1 |grep %Cpu | awk-F " " ‘{print $8}’
定时任务crontab
hanada 大佬有话说 :
治标不治本……
小鸡真爱无疑 大佬有话说 :
城里的月光 大佬有话说 : 2023-1-30 01:03
提示变量有问题 就改成
感谢大佬,确实不行。我已经解决了。
怪人 大佬有话说 :
叼,跟大佬学习