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