運維人的 Linux 工具箱:這些命令能救急
在Linux運維工作中,掌握關鍵命令可以大幅提升故障排查和系統管理效率。無論是服務器卡頓、網絡異常,還是日志分析、性能優化,合適的命令能讓你快速定位問題并解決。
本文整理了一些最實用的Linux命令,涵蓋系統監控、網絡診斷、日志分析、文件管理等場景,教你如何使用它們應對突發故障。
一、系統監控與性能分析
1. top / htop —— 實時進程監控
作用:查看CPU、內存、進程占用情況。
救急場景:服務器卡頓,快速定位高負載進程。
示例:
top -c # 顯示完整命令
htop # 更友好的交互式界面(需安裝)
輸出關鍵列:
- %CPU:進程CPU占用率
- RES:內存占用
- COMMAND:進程名稱
2. vmstat —— 系統資源統計
作用:查看CPU、內存、I/O、上下文切換等整體情況。
救急場景:排查系統瓶頸(如CPU等待I/O)。
示例:
vmstat 1 5 # 每秒1次,共5次
關鍵指標:
- r:運行隊列長度(>CPU核心數說明過載)
- wa:I/O等待時間占比(高說明磁盤瓶頸)
3. iostat —— 磁盤I/O監控
作用:分析磁盤讀寫性能。
救急場景:數據庫緩慢,懷疑磁盤瓶頸。
示例:
iostat -x 1 # 顯示擴展統計,每秒刷新
關鍵指標:
- %util:磁盤利用率(>80%說明繁忙)
- await:I/O平均等待時間(毫秒)
4. free -h —— 內存使用情況
作用:查看內存和Swap使用情況。
救急場景:服務崩潰,懷疑內存耗盡。
示例:
free -h
關鍵指標:available:可用內存(包括緩存和緩沖區)
5. df -h / du -sh —— 磁盤空間分析
作用:df查看磁盤剩余空間,du統計目錄大小。
救急場景:日志寫滿磁盤導致服務異常。
示例:
df -h / # 查看根分區使用率
du -sh /var/log # 統計日志目錄大小
二、網絡診斷
1. ping / traceroute —— 基礎連通性測試
作用:檢查網絡延遲和路由路徑。
救急場景:用戶反饋網站無法訪問。
示例:
ping example.com
traceroute example.com
2. netstat / ss —— 網絡連接與端口監聽
作用:查看當前網絡連接和監聽端口。
救急場景:服務端口未啟動或連接數爆滿。
示例:
netstat -tulnp # 傳統寫法
ss -tulnp # 更快的替代方案
3. tcpdump —— 抓包分析
作用:捕獲網絡數據包,排查協議問題。
救急場景:API接口異常,懷疑網絡丟包。
示例:
tcpdump -i eth0 port 80 -w capture.pcap
4. iftop / nethogs —— 實時流量監控
作用:按進程或IP查看網絡帶寬占用。
救急場景:服務器流量激增,定位異常連接。
示例:
iftop -i eth0 # 按IP統計流量
nethogs eth0 # 按進程統計(需安裝)
三、日志與文本處理
1. grep —— 文本搜索
作用:快速過濾關鍵日志。
救急場景:從海量日志中找錯誤信息。
示例:
grep "ERROR" /var/log/syslog
grep -A 3 -B 2 "panic" app.log # 顯示匹配行的前后內容
2. tail -f —— 實時日志跟蹤
作用:動態查看日志更新。
救急場景:調試服務啟動問題。
示例:
tail -f /var/log/nginx/access.log
3. awk / sed —— 高級文本處理
作用:提取、替換、統計文本內容。
救急場景:分析日志生成報告。
示例:
awk '{print $1}' access.log | sort | uniq -c # 統計IP訪問次數
sed -i 's/old/new/g' file.conf # 批量替換文本
四、文件與權限管理
1. find —— 文件搜索
作用:按名稱、時間、大小查找文件。
救急場景:清理過期日志或臨時文件。
示例:
find /var/log -name "*.log" -mtime +30 -delete
2. chmod / chown —— 權限管理
作用:修改文件權限和所有者。
救急場景:因權限問題導致服務無法啟動。
示例:
chmod 755 script.sh
chown -R nginx:nginx /var/www
五、系統管理
3. systemctl —— 服務管理
作用:啟動、停止、重啟服務。
救急場景:服務崩潰需快速恢復。
示例:
systemctl restart nginx
systemctl status docker
4. journalctl —— 查看系統日志
作用:查詢systemd管理的服務日志。
救急場景:服務啟動失敗排查。
示例:
journalctl -u nginx --since "1 hour ago"
總結
以上這些命令覆蓋了Linux運維中最常見的故障場景,建議收藏并熟練使用。實際工作中,可結合腳本實現自動化,進一步提升效率。