如果/boot分区的空间使用超过80%,输出报警信息。判断ttpd是否在运行,若已运行则输出提示信息,否则重新启动httpd服务。判断vsftpd是否在运行,若已运行则输出提示信息,否则重新启动vsftpd服务。判断mysqld是否在运行,若已运行则输出提示信息,否则重新启动。自动检测内网的几台服务器是否能ping通,待检测服务
时间: 2024-02-28 11:56:55 浏览: 56
Spring Boot中使用Actuator的/info端点输出Git版本信息
可以编写一个 Shell 脚本来实现这个功能,以下是一个示例代码:
```bash
#!/bin/bash
# 检查 /boot 分区使用情况
boot_usage=$(df -h /boot --output=pcent | tail -1 | tr -d '[:space:]')
if [[ ${boot_usage%?} -gt 80 ]]; then
echo "WARNING: /boot usage is ${boot_usage}."
fi
# 检查 httpd 服务是否在运行
if pgrep httpd >/dev/null; then
echo "httpd is running."
else
echo "httpd is not running, restarting..."
systemctl restart httpd
fi
# 检查 vsftpd 服务是否在运行
if pgrep vsftpd >/dev/null; then
echo "vsftpd is running."
else
echo "vsftpd is not running, restarting..."
systemctl restart vsftpd
fi
# 检查 mysqld 服务是否在运行
if pgrep mysqld >/dev/null; then
echo "mysqld is running."
else
echo "mysqld is not running, restarting..."
systemctl restart mysqld
fi
# 检查内网服务器是否能 ping 通
servers=("192.168.1.2" "192.168.1.3" "192.168.1.4")
for server in "${servers[@]}"; do
if ping -c 1 -W 1 "$server" >/dev/null; then
echo "Ping to $server OK."
else
echo "Ping to $server failed, please check network."
fi
done
```
脚本中使用 `df` 命令获取 `/boot` 分区使用情况,并使用 `${boot_usage%?}` 剔除百分号,判断使用率是否超过80%。如果超过则输出警告信息。接着使用 `pgrep` 命令判断 `httpd`、`vsftpd`、`mysqld` 是否在运行,如果运行则输出提示信息,否则使用 `systemctl` 命令重新启动对应的服务。最后使用 `ping` 命令检查内网服务器是否能 ping 通,如果能则输出提示信息,否则输出检测失败的提示信息。
阅读全文