在服务器的世界里书写代码与梦想:Linux下网络与磁盘高效检查详解
引言
在服务器运维和开发中,网络畅通和磁盘健康是系统稳定运行的基石。当服务出现延迟、文件无法写入或带宽异常时,熟练使用Linux自带工具进行快速诊断至关重要。本文将系统梳理网络与磁盘检查的核心命令与进阶技巧,助您成为服务器诊断高手。
一、网络诊断:从连通性到性能分析
1.1 基础网络命令:连通性检测
1.1.1 网络接口状态
# 经典工具(需安装net-tools)
ifconfig eth0 # 查看指定网卡信息
ifconfig -a # 查看所有网卡
# 新工具(推荐)
ip addr show eth0 # 查看IP地址和MAC
ip link set eth0 up # 启用网卡
1.1.2 连通性测试
命令 | 用途 | 示例 |
---|---|---|
ping | 检测主机连通性 | ping -c 3 192.168.1.1 |
traceroute | 跟踪路由路径 | traceroute www.baidu.com |
mtr | 结合ping和traceroute的诊断工具 | mtr --report www.google.com |
1.2 端口与连接分析
1.2.1 端口状态查看
# 传统工具(需net-tools)
netstat -tunlp # 查看所有TCP/UDP端口
netstat -anp | grep 80 # 查找80端口相关进程
# 新生代工具(推荐)
ss -tunlp # 更高效的socket查看
ss -s # 统计socket使用情况
1.2.2 服务发现
nmap 192.168.1.0/24 # 扫描局域网内活跃主机
nmap -p 1-1000 192.168.1.100 # 扫描指定主机端口
1.3 实时网络监控
1.3.1 流量监控
nload eth0 # 实时显示上下行带宽
iftop -P # 显示实时流量及连接对端
1.3.2 抓包分析
tcpdump -i eth0 port 80 -n # 抓取80端口的网络包
tcpdump -w capture.pcap # 保存包到文件
1.4 DNS与路由诊断
dig @8.8.8.8 www.baidu.com # 指定DNS服务器解析
nslookup example.com # 简单DNS查询
route -n # 查看路由表
二、磁盘管理:从空间分配到故障修复
2.1 磁盘基础信息
2.1.1 空间查看
df -h # 查看磁盘挂载点空间
du -sh /var # 查看目录大小
lsblk # 可视化磁盘结构
2.1.2 分区操作
fdisk -l # 查看磁盘分区
parted /dev/sda resizepart 1 10GB # 调整分区大小
2.2 磁盘性能与健康
2.2.1 实时IO监控
iotop # 显示进程IO占用
dstat -d --top-io # 综合IO统计
2.2.2 磁盘健康检查
smartctl -a /dev/sda # 查看S.M.A.R.T信息
smartctl -t short /dev/sda # 执行短测试
2.3 故障处理与数据恢复
2.3.1 文件系统修复
fsck /dev/sda1 # 修复文件系统
e2fsck -f /dev/sda2 # 强制检查ext4分区
2.3.2 数据恢复
testdisk /dev/sda # 分区恢复工具
photorec # 深层数据恢复
三、自动化脚本:提升运维效率
3.1 网络健康检查脚本
#!/bin/bash
PING_RESULT=$(ping -c 1 192.168.1.1 | grep "1 received" | wc -l)
if [ $PING_RESULT -eq 0 ]; then
echo "Network down at $(date)" >> /var/log/network.log
systemctl restart network
fi
3.2 磁盘预警脚本
#!/bin/bash
DISK_USED=$(df / | awk 'NR==2{print $5}' | cut -d'%' -f1)
if [ $DISK_USED -gt 90 ]; then
echo "Disk full warning: $DISK_USED%" | mail -s "Alert" admin@example.com
fi
四、工具对比与推荐
4.1 网络工具对比
场景 | 推荐工具 | 优势 |
---|---|---|
实时流量监控 | nload/iftop | 可视化界面,实时更新 |
抓包分析 | tcpdump/wireshark | 深度协议分析 |
端口查看 | ss | 性能优于netstat |
4.2 磁盘工具对比
场景 | 推荐工具 | 优势 |
---|---|---|
空间分析 | ncdu | 交互式目录大小查看 |
健康检查 | smartctl | 支持S.M.A.R.T标准 |
分区管理 | parted | 支持GPT分区,图形化交互 |
五、最佳实践建议
-
定期巡检:
- 每周运行
smartctl
检查磁盘健康 - 每月用
nmap
扫描服务器开放端口
- 每周运行
-
配置监控:
- 使用Prometheus+Grafana搭建可视化监控平台
- 配置
systemd
服务自动重启异常服务
-
数据备份:
- 重要数据使用
rsync
+cron
定期备份 - 关键业务采用RAID+热备盘冗余方案
- 重要数据使用
结语
服务器运维的本质是用确定性的工具应对不确定性的故障。掌握网络与磁盘的诊断技巧,不仅能快速定位问题,更能防患于未然。记住:优秀的工程师不是在解决故障,而是在阻止故障发生。
你在服务器运维中遇到过哪些奇葩的网络/磁盘问题?是如何解决的?欢迎在评论区分享!