作为运维工程师或后端开发者,日常工作中最耗时的往往不是写代码,而是排查服务器问题。本文分享10个经过实战检验的一键排查脚本。
1. 系统整体健康检查
#!/bin/bash
echo "========== 系统健康检查 =========="
echo "检查时间: $(date)"
uptime
ps aux --sort=-%cpu | head -6
free -h
df -h | grep -E "(Filesystem|/dev/)"
ss -s
2. 端口占用排查
#!/bin/bash
PORT=${1:?"用法: $0 <端口号>"}
ss -tlnp | grep ":$PORT " || echo "端口未被监听"
lsof -i :$PORT 2>/dev/null
3. 内存占用分析
#!/bin/bash
free -h
ps aux --sort=-%mem | head -11
lsof +L1 2>/dev/null
4. 磁盘空间深度分析
#!/bin/bash
df -h | grep -E "(Filesystem|/dev/)"
find . -type f -exec du -h {} + 2>/dev/null | sort -rh | head -20
du -sh */ 2>/dev/null | sort -rh | head -10
5. 网络连通性诊断
#!/bin/bash
TARGET=${1:-"8.8.8.8"}
ping -c 5 -W 2 $TARGET
for port in 22 80 443 3306 6379 8080; do
timeout 2 bash -c "echo > /dev/tcp/$TARGET/$port" 2>/dev/null && \
echo "端口 $port: 开放" || echo "端口 $port: 关闭"
done
6. 进程异常检测
检测僵尸进程、CPU和内存异常进程、运行时间过长的进程、重复进程。
7. Web日志快速分析
awk "{print $1}" access.log | sort | uniq -c | sort -rn | head -10
awk "{print $7}" access.log | sort | uniq -c | sort -rn | head -10
8. SSL证书检查
使用openssl检查证书有效期,自动计算剩余天数并给出告警。
9. 一键安全检查
检查SSH配置、防火墙状态、失败登录尝试、SUID文件、开放端口。
10. 快速备份脚本
支持增量备份、自动清理旧备份、排除日志和临时文件。
0 8 * * * /root/scripts/health-check.sh
0 9 * * 1 /root/scripts/security-check.sh
0 2 * * * /root/scripts/quick-backup.sh /var/www/html
📢 本文为精简版,完整版包含独家工具推荐和深度分析,请访问 WD Tech Blog 查看!
关注我的博客获取最新科技资讯、AI教程和效率工具推荐!
Top comments (0)