首页 帮助中心 常见问题 Linux VPS服务器CPU负载及内存占用自动重启bash shell脚本
Linux VPS服务器CPU负载及内存占用自动重启bash shell脚本
时间 : 2024-08-07 11:18:13 编辑 : 华纳云 阅读量 : 191

  Linux VPS服务器上监控CPU负载和内存具体使用情况,并且在达到特定阈值时自动重启服务器,如何使用Bash Shell脚本来实现。脚本将根据您设定的条件定期检查系统负载和内存使用情况,并在达到特定条件时执行重启操作。
  Linux VPS服务器自动重启Bash Shell脚本,以下是简单的Bash脚本,用于监控系统CPU负载和内存使用情况,并在超过预设阈值时自动重启服务器。

#!/bin/bash

# 设置CPU负载阈值和内存使用阈值
CPU_THRESHOLD=2.0  # CPU平均负载超过2.0时重启
MEMORY_THRESHOLD=80 # 内存使用超过80%时重启

# 获取当前CPU负载和内存使用情况
CPU_LOAD=$(awk '{print $1}' /proc/loadavg)
MEMORY_USAGE=$(free | awk '/Mem/{printf("%.0f"), $3/$2*100}')

# 检查CPU负载是否超过阈值
if (( $(echo "$CPU_LOAD > $CPU_THRESHOLD" | bc -l) )); then
    echo "CPU负载过高,当前负载:$CPU_LOAD,超过阈值:$CPU_THRESHOLD"
    echo "正在重启服务器..."
    # 重启服务器
    sudo reboot
fi

# 检查内存使用是否超过阈值
if [ "$MEMORY_USAGE" -gt "$MEMORY_THRESHOLD" ]; then
    echo "内存使用过高,当前使用:$MEMORY_USAGE%,超过阈值:$MEMORY_THRESHOLD%"
    echo "正在重启服务器..."
    # 重启服务器
    sudo reboot
fi

echo "CPU负载和内存使用情况正常,当前CPU负载:$CPU_LOAD,内存使用:$MEMORY_USAGE%"

  具体的使用说明
  保存脚本,将上述脚本保存为 monitor.sh 文件:
  nano monitor.sh
  然后粘贴脚本内容并保存。
  修改阈值
  CPU_THRESHOLD:设置CPU负载的阈值。根据您的需求进行调整,例如设置为 2.0 表示当系统平均负载超过2.0时重启。
  MEMORY_THRESHOLD:设置内存使用的百分比阈值。例如,设置为 80 表示当内存使用超过80%时重启。
  赋予执行权限,可以使脚本执行:
  chmod +x monitor.sh设置为定时任务,使用cron定期执行脚本。
  编辑cron任务:
  crontab -e
  添加以下行,每5分钟运行一次脚本:
  */5 * * * * /path/to/monitor.sh
  将 /path/to/monitor.sh 替换为脚本的实际路径。
  确保脚本有权限执行sudo reboot命令,您可能需要为当前用户配置sudoers权限,允许其无需密码即可执行重启命令。
  编辑sudoers文件:
  sudo visudo
  添加以下行,假设用户名为 yourusername:
  yourusername ALL=(ALL) NOPASSWD: /sbin/reboot
  替换 yourusername 为实际的用户名。

华纳云 推荐文章
Linux中的hosts.deny可以阻止哪些类型的攻击 Linux VPS服务器带宽测速脚本网络测试方法 nginx如用nginx-rtmp-module搭建流媒体服务器 CentOS 7.x安装配置openGauss数据库常见方法 如何docker搭建lnmp环境详细步骤 Nginx 启动成功访问网页错误怎么排查原因 Linux系统中网络连接超时如何处理 Windows 系统中安装 IIS详细步骤 Linux优化应用程序和服务的方法 nginx反向代理配置去除前缀的方法
客服咨询
7*24小时技术支持
技术支持
渠道支持