0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux運(yùn)維常見故障排查和處理的33個(gè)技巧匯總

馬哥Linux運(yùn)維 ? 來源:未知 ? 作者:鄧佳佳 ? 2018-03-20 09:09 ? 次閱讀

作為linux運(yùn)維,多多少少會(huì)碰見這樣那樣的問題或故障,從中總結(jié)經(jīng)驗(yàn),查找問題,匯總并分析故障的原因,這是一個(gè)Linux運(yùn)維工程師良好的習(xí)慣。每一次技術(shù)的突破,都經(jīng)歷著苦悶,伴隨著快樂,可我們還是執(zhí)著的繼續(xù)努力,從中也積累了更多的經(jīng)驗(yàn),這就是實(shí)踐給予我們的豐厚回報(bào)。

下面匯總了我做項(xiàng)目過程可能出現(xiàn)的故障及解決方法,看看是否與你有共鳴,并對(duì)你有幫助?

第一:常見問題解決集錦

1.shell腳本不執(zhí)行問題:某天研發(fā)某同事找我說幫他看看他寫的shell腳本,死活不執(zhí)行,報(bào)錯(cuò)。我看了下,腳本很簡(jiǎn)單,也沒有常規(guī)性的錯(cuò)誤,報(bào)“:badinterpreter:Nosuchfileordirectory”錯(cuò)??催@錯(cuò),我就問他是不是在windows下編寫的腳本,然后在上傳到linux服務(wù)器的……果然。原因:在DOS/windows里,文本文件的換行符為rn,而在*nix系統(tǒng)里則為n,所以DOS/Windows里編輯過的文本文件到了*nix里,每一行都多了個(gè)^M。解決:1)重新在linux下編寫腳本;2)vi:%s/r//g:%s/^M//g(^M輸入用Ctrl+v,Ctrl+m)附:sh-x腳本文件名,可以單步執(zhí)行并回顯結(jié)果,有助于排查復(fù)雜腳本問題。

2.crontab輸出結(jié)果控制

問題:/var/spool/clientmqueue目錄占用空間超過100G原因:cron中執(zhí)行的程序有輸出內(nèi)容,輸出內(nèi)容會(huì)以郵件形式發(fā)給cron的用戶,而sendmail沒有啟動(dòng)所以就產(chǎn)生了/var/spool/clientmqueue目錄下的那些文件,日積月累可能撐破磁盤。解決:1)直接手動(dòng)刪除:ls|xargsrm-f;2)徹底解決:在cron的自動(dòng)執(zhí)行語(yǔ)句后加上>/dev/null2>&1

3.telnet很慢/ssh很慢問題:某天研發(fā)某同事說10.50訪問10.52memcached服務(wù)異常,讓我們檢查下看網(wǎng)絡(luò)/服務(wù)/系統(tǒng)是否有異常。檢查發(fā)現(xiàn)系統(tǒng)正常,服務(wù)正常,10.50ping10.52也正常,但10.50telnet10.52很慢。同時(shí)發(fā)現(xiàn)該機(jī)器的namesever是不起作用的。原因:becauseyourPCdoesn’tdoareverseDNSlookuponyourIPthen…whenyoutelnet/ftpintoyourlinuxbox,it’lldoadnslookuponyou。解決:1)修改/etc/hosts使hostname和ip對(duì)應(yīng);2)在/etc/resolv.conf注釋掉nameserver或者找一個(gè)“活的”nameserver。

4.Read-onlyfilesystem問題:同事在mysql里建表建不成功,提示如下:mysql>createtablewosontest(colddname1char(1));ERROR1005(HY000):Can’tcreatetable‘wosontest’(errno:30)經(jīng)檢查mysql用戶權(quán)限以及相關(guān)目錄權(quán)限沒問題;用perror30提示信息為:OSerrorcode30:Read-onlyfilesystem可能原因:1)文件系統(tǒng)損壞;2)磁盤又壞道;3)fstab文件配置錯(cuò)誤,如分區(qū)格式錯(cuò)誤錯(cuò)誤(將ntfs寫成了fat)、配置指令拼寫錯(cuò)誤等。解決:1)由于是測(cè)試機(jī),重啟機(jī)器后恢復(fù);2)網(wǎng)上說用mount可解決。

5.文件刪了磁盤空間沒釋放問題:某天發(fā)現(xiàn)某臺(tái)機(jī)器df-h已用磁盤空間為90G,而du-sh/*顯示所有使用空間加起來才30G,囧。原因:可能某人直接用rm刪除某個(gè)正在寫的文件,導(dǎo)致文件刪了但磁盤空間沒釋放的問題解決:1)最簡(jiǎn)單重啟系統(tǒng)或者重啟相關(guān)服務(wù)。2)干掉進(jìn)程/usr/sbin/lsof|grepdeletedora25575data33uREG65,654294983680/oradata/DATAPRE/UNDOTBS009.dbf(deleted)從lsof的輸出中,我們可以發(fā)現(xiàn)pid為25575的進(jìn)程持有著以文件描述號(hào)(fd)為33打開的文件/oradata/DATAPRE/UNDOTBS009.dbf。在我們找到了這個(gè)文件之后可以通過結(jié)束進(jìn)程的方式來釋放被占用的空間:echo>/proc/25575/fd/333)刪除正在寫的文件一般用cat/dev/null>file

6.find文件提升性能問題:在tmp目錄下有大量包含picture_*的臨時(shí)文件,每天晚上2:30對(duì)一天前的文件進(jìn)行清理。之前在crontab下跑如下腳本,但是發(fā)現(xiàn)腳本效率很低,每次執(zhí)行時(shí)負(fù)載猛漲,影響到其他服務(wù)。#!/bin/shfind/tmp-name“picture_*”-mtime+1-execrm-f{};原因:目錄下有大量文件,用find很耗資源。解決:#!/bin/shcd/tmptime=`date-d“2dayago”“+%b%d”`ls-l|grep“picture”|grep“$time”|awk‘{print$NF}’|xargsrm-rf

7.獲取不了網(wǎng)關(guān)mac地址問題:從2.14到3.65(映射地址2.141)網(wǎng)絡(luò)不通,但是從3端的其他機(jī)器到3.65網(wǎng)絡(luò)OK。原因:#arpAddressHWtypeHWaddressFlagsMaskIface192.168.3.254etherincompletCMbond0表面現(xiàn)象是機(jī)器自動(dòng)獲取不了網(wǎng)關(guān)MAC地址,網(wǎng)絡(luò)工程師說是網(wǎng)絡(luò)設(shè)備的問題,具體不清。解決:arp綁定,arp-ibond0-s192.168.3.25400:00:5e:00:01:64

8.http服務(wù)無(wú)法啟動(dòng)一例問題:某天研發(fā)某同事說網(wǎng)站前端環(huán)境http無(wú)法啟動(dòng),我上去看了下。報(bào)如下錯(cuò):/etc/init.d/httpdstartStartinghttpd:[SatJan2917:49:002011][warn]moduleantibot_moduleisalreadyloaded,skippingUseproxyforwardasremoteip:true.Antibotexcludepattern:.*.[(js|css|jpg|gif|png)]Antibotseedcheckpattern:login(98)Addressalreadyinuse:make_sock:couldnotbindtoaddress[::]:7080(98)Addressalreadyinuse:make_sock:couldnotbindtoaddress0.0.0.0:7080nolisteningsocketsavailable,shuttingdownUnabletoopenlog[FAILED]原因:1)端口被占用:表面看是7080端口被占用,于是netstat-npl|grep7080看了下發(fā)現(xiàn)7080沒有占用;2)在配置文件中重復(fù)寫了端口,如果在以下兩個(gè)文件同時(shí)寫了Listen7080/etc/httpd/conf/http.conf/etc/httpd/conf.d/t.10086.cn.conf解決:注釋掉/etc/httpd/conf.d/t.10086.cn.conf的Listen7080,重啟,OK。

9.toomanyopenfile問題:報(bào)toomanyopenfile錯(cuò)誤解決:終極解決方案echo“”>>/etc/security/limits.confecho“*softnproc65535″>>/etc/security/limits.confecho“*hardnproc65535″>>/etc/security/limits.confecho“*softnofile65535″>>/etc/security/limits.confecho“*hardnofile65535″>>/etc/security/limits.confecho“”>>/root/.bash_profileecho“ulimit-n65535″>>/root/.bash_profileecho“ulimit-u65535″>>/root/.bash_profile最后重啟機(jī)器或者執(zhí)行ulimit-u655345&&ulimit-n65535

10.ibdata1和mysql-bin致磁盤空間問題問題:2.51磁盤空間報(bào)警,經(jīng)查發(fā)現(xiàn)ibdata1和mysql-bin日志占用空間太多(其中ibdata1超過120G,mysql-bin超過80G)原因:ibdata1是存儲(chǔ)格式,在INNODB類型數(shù)據(jù)狀態(tài)下,ibdata1用來存儲(chǔ)文件的數(shù)據(jù)和索引,而庫(kù)名的文件夾里的那些表文件只是結(jié)構(gòu)而已。innodb存儲(chǔ)引擎有兩種表空間的管理方式,分別是:1)共享表空間(可拆分為多個(gè)小的表空間文件),這個(gè)是我們目前多數(shù)數(shù)據(jù)庫(kù)使用的方法;2)獨(dú)立表空間,每一個(gè)表有一個(gè)獨(dú)立的表空間(磁盤文件)對(duì)于兩種管理方式,各有優(yōu)劣,具體如下:①共享表空間:優(yōu)點(diǎn):可以將表空間分成多個(gè)文件存放到不同的磁盤上(表空間文件大小不受表大小的限制,一個(gè)表可以分布在不同步的文件上)缺點(diǎn):所有數(shù)據(jù)和索引存放在一個(gè)文件中,則隨著數(shù)據(jù)的增加,將會(huì)有一個(gè)很大的文件,雖然可以把一個(gè)大文件分成多個(gè)小文件,但是多個(gè)表及索引在表空間中混合存儲(chǔ),這樣如果對(duì)于一個(gè)表做了大量刪除操作后表空間中將有大量空隙。對(duì)于共享表空間管理的方式下,一旦表空間被分配,就不能再回縮了。當(dāng)出現(xiàn)臨時(shí)建索引或是創(chuàng)建一個(gè)臨時(shí)表的操作表空間擴(kuò)大后,就是刪除相關(guān)的表也沒辦法回縮那部分空間了。②獨(dú)立表空間:在配置文件(my.cnf)中設(shè)置:innodb_file_per_table特點(diǎn):每個(gè)表都有自已獨(dú)立的表空間;每個(gè)表的數(shù)據(jù)和索引都會(huì)存在自已的表空間中。優(yōu)點(diǎn):表空間對(duì)應(yīng)的磁盤空間可以被收回(Droptable操作自動(dòng)回收表空間,如果對(duì)于刪除大量數(shù)據(jù)后的表可以通過:altertabletbl_nameengine=innodb;回縮不用的空間。缺點(diǎn):如果單表增加過大,如超過100G,性能也會(huì)受到影響。在這種情況下,如果使用共享表空間可以把文件分開,但有同樣有一個(gè)問題,如果訪問的范圍過大同樣會(huì)訪問多個(gè)文件,一樣會(huì)比較慢。如果使用獨(dú)立表空間,可以考慮使用分區(qū)表的方法,在一定程度上緩解問題。此外,當(dāng)啟用獨(dú)立表空間模式時(shí),需要合理調(diào)整innodb_open_files參數(shù)的設(shè)置。解決:1)ibdata1數(shù)據(jù)太大:只能通過dump,導(dǎo)出建庫(kù)的sql語(yǔ)句,再重建的方法。2)mysql-binLog太大:①手動(dòng)刪除:刪除某個(gè)日志:mysql>PURGEMASTERLOGSTO‘mysql-bin.010′;刪除某天前的日志:mysql>PURGEMASTERLOGSBEFORE’2010-12-2213:00:00′;②在/etc/my.cnf里設(shè)置只保存N天的bin-log日志expire_logs_days=30//BinaryLog自動(dòng)刪除的天數(shù)

二、故障排查匯總表

序號(hào) 故障點(diǎn) 分析與解決
1 Linux系統(tǒng)安裝初始狀態(tài)時(shí),找不到硬盤,并無(wú)法進(jìn)入下一步安裝 進(jìn)入COMS設(shè)置,找到硬盤設(shè)置的相關(guān)選項(xiàng),并設(shè)置為兼容模式
2 Linux系統(tǒng)安裝時(shí),在硬盤分區(qū)完成后,無(wú)法繼續(xù)安裝 硬盤分區(qū)不符合安裝要求,你可能忘記創(chuàng)建根分區(qū)或swap交換分區(qū)了,這一點(diǎn)與Windows系統(tǒng)的安裝有區(qū)別
3 Linux系統(tǒng)安裝時(shí),制定安裝中,軟件包的選擇感覺困惑,安裝完成后發(fā)現(xiàn)不符合我們的要求,有些組件沒有安裝,而不需要的組件卻裝上了 對(duì)Linux系統(tǒng)的了解還太少,反復(fù)安裝多次后,自然掌握自如
4 代理服務(wù)器的配置過程中,發(fā)現(xiàn)有些過濾規(guī)劃未起作用 (1)先檢查對(duì)應(yīng)的功能模塊是否加載成功(2)默認(rèn)策略是否設(shè)置恰當(dāng)(3)iptables命令語(yǔ)法是否有錯(cuò)(4)過濾規(guī)劃順序可能不當(dāng),需調(diào)整
5 代理服務(wù)器和防火墻的配置完成后,啟動(dòng)服務(wù),可以訪問Internet,但不能訪問DMZ區(qū)的服務(wù) (1)關(guān)閉iptables服務(wù),看是否可以訪問,如果不能,檢查連通性,若能訪問,說明iptables規(guī)則有問題,集中檢查過濾規(guī)則的配置與順序
6 再次配置好iptables過濾規(guī)則后,重啟iptables服務(wù)后,發(fā)現(xiàn)原有的規(guī)則全部丟失 (1)修改/etc/sysconfig/iptables-config配置文件,將IPTABLES_SAVE_ON_RESTART=”no”改為yes(2)用iptables-save > /etc/sysconfig/iptables命令保存
7 交換機(jī)上劃分VLAN后,不能訪問外網(wǎng) VLAN的網(wǎng)關(guān)未設(shè)置或設(shè)置不正確
8 在配置DNS服務(wù)中,named服務(wù)無(wú)法啟動(dòng) 造成問題可能性:(1)/etc/named目錄下缺少必要文件(2)/var/named目錄下缺少必要文件(3)named賬戶權(quán)限問題。解決方法:缺少的文件必須復(fù)制到位,啟動(dòng)文件必須將權(quán)限設(shè)置為named賬戶和組賬戶
9 在配置DNS服務(wù)中,無(wú)法正確解析域名或IP地址 (1)檢查并修改/var/named下的正向解析區(qū)文件和反向解析區(qū)文件中的語(yǔ)法與記錄設(shè)置(2)檢查/etc/named.conf配置中的zone區(qū)域聲明編寫是否有誤(3)檢查是否安裝了bind-chroot軟件包,如安裝了,區(qū)域數(shù)據(jù)庫(kù)文件應(yīng)在/var/named/chroot/var/named目錄中(4)檢查/etc/resolv.conf配置文件是否設(shè)定了正確的nameserver
10 dhcpd服務(wù)啟動(dòng)時(shí),提示“No subnet declaration for eth0(10.10.10.2)” 說明eth0的IP地址設(shè)置不對(duì),不在dhcp服務(wù)的作用域范圍內(nèi),必須將eth0的IP設(shè)置為作用域范圍內(nèi)的IP地址
11 在配置DHCP服務(wù)時(shí),配置了多個(gè)作用域,結(jié)果只有一個(gè)作用域的地址可以分配,其他不能分配成功 說明主機(jī)的網(wǎng)絡(luò)接口卡只有一個(gè),如有3個(gè)作用域,需配置3個(gè)網(wǎng)卡接口eth0、eth1和eth2,分別對(duì)應(yīng)3個(gè)作用域。這是使用超級(jí)作用域的一種配置方法
12 MySQL數(shù)據(jù)庫(kù)的安裝不能成功,總是提示軟件的依賴關(guān)系,造成所要安裝的軟件包不能順利安裝 說明所要安裝的軟件包需要其他組件或共享庫(kù)的支持,MySQL的rpm包安裝方式本身就繁瑣一些,要求安裝的軟件包比較多,包之間的依賴關(guān)系非常明顯,根據(jù)提示找到需要的組件包并安裝,安裝時(shí)要注意軟件包順序
13 測(cè)試Web服務(wù),訪問主站點(diǎn)時(shí),無(wú)網(wǎng)頁(yè)出現(xiàn),但已經(jīng)連接上服務(wù)器 在httpd.conf主配置文件中的“DocumentRoot”選項(xiàng)的設(shè)置不當(dāng),如/var/www/html/,最后的“/”不能加
14 遠(yuǎn)程客戶端無(wú)法訪問samba共享目錄,共享目錄在本地測(cè)試成功 關(guān)閉iptables服務(wù)
15 Samba的smb服務(wù)已經(jīng)啟動(dòng)成功,訪問samba某個(gè)共享目錄時(shí),提示錯(cuò)誤信息“NT_STATUS_BAD_NETWORK_NAME” 說明共享目錄沒有創(chuàng)建或不存在
16 Samba的smb服務(wù)已經(jīng)啟動(dòng)成功,提示錯(cuò)誤信息“NT_STATUS_ACCESS_DENIED” 提示訪問被拒絕,可能是登錄的用戶名或密碼有誤,或是iptables啟動(dòng)了,關(guān)閉防火墻
17 Samba的smb服務(wù)已經(jīng)啟動(dòng)成功,提示錯(cuò)誤信息“NT_STATUS_LOGON_FAILURE” 不允許當(dāng)前用戶訪問當(dāng)前共享目錄,說明此共享目錄設(shè)置只允許特定用戶訪問
18 FTP服務(wù)配置了本地用戶上傳,但在上傳數(shù)據(jù)到對(duì)應(yīng)目錄時(shí),提示被拒絕 可能該用戶賬戶對(duì)上傳目錄沒有寫權(quán)限
19 配置允許本地賬戶登錄FTP后,root賬戶無(wú)法登錄,并提示“500 OOPS:cannot change directory:/root”的錯(cuò)誤信息,而其他本地賬戶可以登錄FTP 檢查是否啟用了SELinux安全系統(tǒng),并禁止SELinux,可以編輯/etc/selinux/config文件,將配置項(xiàng)SELINUX=enforcing改為disabled
20 使用郵件客戶端可以發(fā)送郵件,但不能接收郵件 檢查pop3服務(wù)是否啟動(dòng)
21 mount命令掛載NFS服務(wù)的共享目錄,很久也沒有響應(yīng),NFS服務(wù)是正常的 portmap服務(wù)沒有啟動(dòng),必須啟動(dòng)該服務(wù)
22 本地測(cè)試mount掛載NFS共享成功,但在其他客戶主機(jī)mount連接時(shí)不成功 關(guān)閉iptables服務(wù),再測(cè)試
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11304

    瀏覽量

    209535

原文標(biāo)題:Linux運(yùn)維常見故障排查和處理的33個(gè)技巧匯總

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    變頻空調(diào)原理與常見故障訓(xùn)(

    本帖最后由 eehome 于 2013-1-5 09:50 編輯 變頻空調(diào)原理與常見故障訓(xùn)(
    發(fā)表于 07-22 00:28

    linux運(yùn)命令大全

    是對(duì)Linux高端運(yùn)實(shí)用命令的簡(jiǎn)單匯總:1. bash常用任務(wù)管理命令&,Ctrl-Z,Ctrl-C,jobs,fg,bg,kill等2. 基本的文件管理命令ls,ls-l, les
    發(fā)表于 03-15 16:36

    linux運(yùn)怎么排查

    linux運(yùn)排查常用命令(開發(fā)專享)
    發(fā)表于 11-11 06:34

    RS485通信有哪些常見故障,如何去排查?

    RS485通信有哪些常見故障,如何去排查?
    發(fā)表于 05-19 06:32

    電源常見故障現(xiàn)象

    實(shí)訓(xùn)13 微機(jī)常見故障處理實(shí)訓(xùn)報(bào)告實(shí)訓(xùn)13 微機(jī)常見故障處理實(shí)訓(xùn)報(bào)告實(shí)訓(xùn)內(nèi)容1.電源常見故障2.CPU、主板和內(nèi)存
    發(fā)表于 09-08 06:07

    PLC常見故障處理

    PLC常見故障處理:PLC常見故障處理1. 維護(hù)概述2. 查找故障的設(shè)備3. 基本的查找故障順序
    發(fā)表于 07-05 21:41 ?58次下載

    通用示波器的常見故障處理

    通用示波器的常見故障處理。
    發(fā)表于 05-05 11:12 ?20次下載

    碳刷選用及常見故障處理

    碳刷選用及常見故障處理_王長(zhǎng)兵
    發(fā)表于 01-02 15:44 ?0次下載

    Linux運(yùn)常見故障排查處理33個(gè)技巧匯總

    Linux運(yùn)常見故障排查處理33
    的頭像 發(fā)表于 03-05 13:39 ?1.2w次閱讀

    Linux常見故障的緊急處理方法分享

    本文主要詳細(xì)介紹了Linux常見故障的緊急處理方法,具體的跟隨小編一起來了解一下。
    的頭像 發(fā)表于 10-05 08:53 ?3235次閱讀

    Linux運(yùn)常見的關(guān)鍵指標(biāo)參數(shù)匯總

    Linux運(yùn)常見的關(guān)鍵指標(biāo)參數(shù)匯總
    發(fā)表于 05-05 09:06 ?1837次閱讀

    直流穩(wěn)壓電源常見故障分析與排查

    直流穩(wěn)壓電源常見故障分析與排查(新型電源技術(shù)作業(yè)答案)-電子設(shè)計(jì)工程 2015年7月 直流穩(wěn)壓電源常見故障分析與排查
    發(fā)表于 09-29 12:16 ?35次下載
    直流穩(wěn)壓電源<b class='flag-5'>常見故障</b>分析與<b class='flag-5'>排查</b>

    常用linux網(wǎng)絡(luò)排查命令

    今天浩道跟大家分享linux網(wǎng)絡(luò)運(yùn)常見的命令,掌握好這些命令,在排查故障時(shí)將會(huì)游刃有余!
    發(fā)表于 06-25 10:49 ?818次閱讀

    如何處理時(shí)鐘電路的常見故障

    處理時(shí)鐘電路的常見故障是一個(gè)涉及多個(gè)步驟和細(xì)節(jié)的過程,需要仔細(xì)分析和逐步排查。時(shí)鐘電路在電子設(shè)備中扮演著至關(guān)重要的角色,負(fù)責(zé)提供穩(wěn)定的時(shí)鐘信號(hào),以確保設(shè)備內(nèi)部各組件能夠協(xié)調(diào)運(yùn)行。
    的頭像 發(fā)表于 09-09 16:49 ?870次閱讀

    焊接機(jī)器人常見故障排查

    常見故障排查方法 1. 機(jī)械故障 故障現(xiàn)象: 機(jī)器人關(guān)節(jié)活動(dòng)受限、異常噪音、過熱等。 排查方法: 檢查潤(rùn)滑油: 確保所有關(guān)節(jié)和齒輪都有足夠
    的頭像 發(fā)表于 11-25 09:50 ?411次閱讀