监控服务器swap并重启php的Shell脚本


下面是一个Shell脚本的示例,用于监控服务器的swap使用情况,并在swap使用率超过某个阈值时重启PHP服务。这个脚本假设你正在使用Linux系统,并且PHP服务是通过像`systemd`或`service`这样的系统服务管理器来管理的。

请注意,实际环境中PHP服务的重启命令可能会根据你的系统和PHP安装方式而有所不同。


#!/bin/bash

# 设置swap使用率的阈值(例如,80%)
THRESHOLD=80

# 获取当前swap的使用率
# 这里的命令依赖于系统,以下是一个使用free命令和awk来解析的例子
SWAP_USAGE=$(free | grep Swap | awk '{print $3/$2 * 100.0}')

# 去掉输出中的%号,如果需要的话
SWAP_USAGE=${SWAP_USAGE%\%}

# 检查swap使用率是否超过阈值
if [ "${SWAP_USAGE}" -gt "${THRESHOLD}" ]; then
    echo "Swap usage is over ${THRESHOLD}%. Restarting PHP service..."

    # 重启PHP服务的命令,这里需要根据实际情况替换
    # 假设使用systemd
    sudo systemctl restart php-fpm.service
    # 或者如果你使用的是service命令
    # sudo service php-fpm restart

    echo "PHP service restarted."
else
    echo "Swap usage is under ${THRESHOLD}%. No action required."
fi

保存这段代码到一个文件中,比如叫`monitor_swap_restart_php.sh`,然后给予执行权限:


chmod +x monitor_swap_restart_php.sh

之后,你可以手动运行这个脚本,或者将它设置为一个定时任务(cron job),来定期监控swap使用率并在需要时重启PHP服务。

请确保你有足够的权限来执行这个脚本中的命令,特别是重启服务的命令。如果没有sudo权限,你可能需要调整你的sudoers文件或者与你的系统管理员联系。