1. 程式人生 > >linux運維系統故障排查思路及常見故障處理

linux運維系統故障排查思路及常見故障處理

運維故障 故障排查 常見linux故障


一 linux系統故障的一般處理思路

報錯信息--->查閱日誌文件--->分析定位問題--->解決問題。


二 linux系統無法啟動原因及解決

系統無法啟動的原因很多,常見的有下面幾種情況:

1 文件系統被破壞,常常因斷電和非法關機引起文件系統結構不一致。修復方法是用fsck命名強制修復,進入單用戶模式或者交互界面,按提示進入修改模式中,卸載對應的問題磁盤,然後用fsck命令修復,無法恢復的數據會存放在lost+found下。umount /dev/sda3 fsck.ext4 -y /dev/sda3

2 系統配置/etc/fstab錯誤或丟失而無法啟動。當啟動時候出現 starting system logger後停止了,就要想辦法恢復/etc/fstab文件,利用linux rescue修復模式登錄系統,從而獲取掛載點和分區信息,重構/etc/fstab文件。

3 系統內核文件丟失,內核升級錯誤,引導程序出錯,硬件故障等都會引起無法啟動


三 linux網絡故障處理思路流程

1 檢查權限是否打開,iptables,selinux

2 服務是否正常,用Telnet或netstat檢查服務是否正常開啟

3 檢查本機網絡是否正常,ping自身IP、同網段主機、網關

4 檢查DNS解析是否正常,/etc/hosts和/etc/resolv.conf

5 檢測網卡ip設置,route檢查路由是否正確

6 檢查網路硬件,網卡、路由器、集線器、網線、交換機(lsmod、ifconfig、ip)


四 Read-only file system 錯誤解決

思路:

網站程序問題

磁盤問題

排查網站程序,看報錯信息和服務日誌錯誤,以及系統日誌,來定位問題所在 Read-only file system 多數就是磁盤問題,出現上面錯誤的時候,磁盤對應目錄是無法寫入的,那麽就要進行修復了,文件系統修復命令fsck

首先查看是否有用戶正在使用該磁盤,fuser -m /dev/sda1,如果有就停止對應端口程序

接著卸載文件系統 umount /www/data

然後修復文件系統 fsck -V -a /dev/sda1

最後恢復掛載 mount /dev/sda1 /www/data


五 Argument list too long 錯誤解決

當刪除一個目錄中的大量文件時,可能會出現這種報錯,這是由於linux系統對傳遞參數的限制,可以用getconf ARG_MAX查看這個數值,

重新編譯內核參數可以永久解決問題,但是編譯內核有風險,還是用下面方法保險

既然不能一下清除大量文件,那麽分批刪除或者查找或者循環刪除就可以了,可以用下面命令清理

rm [a-n]* -rf

rm [o-z]* -rf

find /www/data -type f -print -exec rm -f {} \;


六 inode耗盡故障

當iNode耗盡後,磁盤雖然有剩余空間,但也會出現 no space left 的報錯

用 df -i 命令可以查看所有分區對應inode的使用情況

用 ls -i nginx.log 能查看對應文件的inode編號。詳細信息用 stat nginx.log 查看

針對inode耗盡的情況,清理刪除那些無用的文件就可以了,尤其是那些碎小的文件


七 刪除文件後空間不釋放問題

文件系統的數據分為兩個部分:數據部分和指針部分,當有進程正在使用某個文件是,執行刪除命令,空間是不會釋放的,刪除的是數據文件部分,指針部分並未刪除,所以空間並不釋放。

用 lsof |grep delete 查看已刪除的文件,找到對應文件 執行清空命令 echo " " > /tmp/nginx.log 空間就會得到釋放


八 “too many open files”錯誤

服務出現報錯異常 too many open files

用 ulimit -n 查看文件描述符 65535 是最大值

檢查普通用戶的值 cat /etc/security/limits.conf |grep www

如果普通用戶的值不是65535 那麽給普通用戶添加這個限制

www soft nofile 65535

www hard nofile 65535

如果上面的普通用戶的值顯示65535 而依舊出現這個錯,就要考慮添加limit值的時間是否早於應用最後一次啟動的時間,應用時間早的話,直接重啟應用就可以了





linux運維系統故障排查思路及常見故障處理