server_monitor.sh 脚本,实现:
查看系统版本
查看 CPU 负载
查看内存使用
查看磁盘使用
查看 TCP 连接数
查看 Nginx、MySQL 是否在运行
输出清晰好看的报告
一、先创建脚本文件
vim /root/server_monitor.sh二、完整监控脚本(带中文注释,方便你学)
#!/bin/bash
echo "========================================"
echo " Linux 服务器监控报告 +"
echo " 监控时间: $(date '+%Y-%m-%d %H:%M:%S') +"
echo "========================================"
# 1. 系统基本信息
echo -e "\n【1. 系统信息】"
echo "主机名: $(hostname)"
echo "内核版本: $(uname -r)"
echo "系统版本: $(cat /etc/os-release | grep PRETTY_NAME | cut -d'"' -f2)"
# 2. CPU 负载
echo -e "\n【2. CPU 负载】"
echo "1/5/15分钟平均负载: $(uptime | awk '{print $8,$9,$10}')"
# 3. 内存使用
echo -e "\n【3. 内存使用】"
free -h | awk '/Mem/{print "总内存: " $2 " 已使用: " $3 " 剩余: " $4}'
# 4. 磁盘使用
echo -e "\n【4. 磁盘使用】"
df -h | grep -E '/$' | awk '{print "根分区使用率: " $5 " 总大小: " $2 " 剩余: " $4}'
# 5. 网络连接数
echo -e "\n【5. 网络状态】"
echo "TCP 连接总数: $(ss -t | wc -l)"
# 6. 服务状态监控
echo -e "\n【6. 关键服务状态】"
# 判断 nginx 是否运行
if pgrep nginx > /dev/null; then
echo "Nginx: 运行中 ✅"
else
echo "Nginx: 未运行 ❌"
fi
# 判断 mysql 是否运行
if pgrep mysql > /dev/null; then
echo "MySQL: 运行中 ✅"
else
echo "MySQL: 未运行 ❌"
fi
# 判断 php-fpm 是否运行
if pgrep php-fpm > /dev/null; then
echo "PHP-FPM: 运行中 ✅"
else
echo "PHP-FPM: 未运行 ❌"
fi
echo -e "\n========================================"
echo " 监控完成"
echo "========================================"
按 ESC,输入 :wq 保存退出。
三、给执行权限
chmod +x /root/server_monitor.sh四、运行看效果
/root/server_monitor.sh
原创
运维巡检脚本
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法