当CPU小于11%就重启Nginx的计划任务Shell,球大佬指点

66次阅读

共计 1682 个字符,预计需要花费 5 分钟才能阅读完成。

内容最后由 小鸡真爱无疑 于 2023-1-30 00:36 编辑 如题,怎么写,5 分钟自动检测一次,CPU 小于 11%,就重启 Nginx,球大佬指点,还得靠自己,才能丰衣足食,代码奉上 TIME_INTERVAL=5time=$(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}%"$timecpu=`echo "$CPU_USAGE" | cut -d "." -f 1`if [$cpu -le 11]thenecho " 草 又死机了 "/etc/init.d/nginx restartelseecho " 嘻嘻没事哦 "fi 复制代码 dragonfsky 2023-01-29 23:30 2 你这是玩什么骚操作 VPS 真爱无疑 2023-01-29 23:32 3dragonfsky 发表于 2023-1-29 23:30 你这是玩什么骚操作服务器总是会自动歇逼,过一小时或者几小时,自动好,如果发现了,重启 Nginx 就好了。排查不出问题 Laa 2023-01-29 23:34 4 是 Nginx 挂了?systemd 加个自动重启就行了 VPS 真爱无疑 2023-01-29 23:37 5Laa 发表于 2023-1-29 23:34 是 Nginx 挂了?systemd 加个自动重启就行了不是 Nginx 挂了,就是不知道哪里挂了,只知道重启 Nginx 可以解决问题。就算不操作,过个几小时,也能自己恢复 FranzkafkaYu 2023-01-29 23:45 6 写个 while 循环,循环体内可以通过 top 或者 sysstat 子命令或者 CPU 的 idle 状态,若满足条件就 systemctl 重启 Nginx,不过这东西治标不治本,把 CPU 异常的根本原因找到才是真的 城里的月光 2023-01-30 01:03 7 内容最后由 城里的月光 于 2023-1-30 02:08 编辑 #!/bin/bashidle = top -n 1 |grep %Cpu | awk  -F " " \'{print $8}\’if [$idle < 10]; then    systemctl restart nginxfi 复制代码提示变量有问题 就改成 idle = top -n 1 |grep %Cpu | awk  -F " " \'{print $8}\’ 复制代码定时任务 crontab hanada 2023-01-30 01:07 8 治标不治本…… VPS 真爱无疑 2023-01-30 01:13 9 城里的月光 发表于 2023-1-30 01:03 提示变量有问题 就改成 感谢大佬,确实不行。我已经解决了。

正文完
 0