溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Linux運(yùn)維常見(jiàn)問(wèn)題有哪些

發(fā)布時(shí)間:2022-02-18 11:05:18 來(lái)源:億速云 閱讀:115 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要為大家展示了“Linux運(yùn)維常見(jiàn)問(wèn)題有哪些”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Linux運(yùn)維常見(jiàn)問(wèn)題有哪些”這篇文章吧。

1.shell腳本不執(zhí)行

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

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

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

3.telnet很慢/ssh很慢

問(wèn)題:某天研發(fā)某同事說(shuō)10.50訪(fǎng)問(wèn)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是不起作用的。 原因:because your PC doesn’t do a reverse DNS lookup on your IP then… when you telnet/ftp into your linux box, it’ll do a dns lookup on you。 解決: 1)修改/etc/hosts使hostname和ip對(duì)應(yīng); 2)在/etc/resolv.conf注釋掉nameserver或者找一個(gè)“活的”nameserver。

4.Read-only file system

問(wèn)題:同事在mysql里建表建不成功,提示如下: mysql>create table wosontest (colddname1 char(1)); ERROR 1005 (HY000): Can’t create table ‘wosontest’ (errno: 30) 經(jīng)檢查mysql用戶(hù)權(quán)限以及相關(guān)目錄權(quán)限沒(méi)問(wèn)題;用perror 30提示信息為:OS error code 30: Read-only file system 可能原因: 1)文件系統(tǒng)損壞; 2)磁盤(pán)又壞道; 3)fstab文件配置錯(cuò)誤,如分區(qū)格式錯(cuò)誤錯(cuò)誤(將ntfs寫(xiě)成了fat)、配置指令拼寫(xiě)錯(cuò)誤等。 解決: 1)由于是測(cè)試機(jī),重啟機(jī)器后恢復(fù); 2)網(wǎng)上說(shuō)用mount可解決。

5.文件刪了磁盤(pán)空間沒(méi)釋放

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

6.find文件提升性能

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

7.獲取不了網(wǎng)關(guān)mac地址

問(wèn)題:從2.14到3.65(映射地址2.141)網(wǎng)絡(luò)不通,但是從3端的其他機(jī)器到3.65網(wǎng)絡(luò)OK。 原因: # arp Address HWtype HWaddress Flags Mask Iface 192.168.3.254 ether incomplet CM bond0 表面現(xiàn)象是機(jī)器自動(dòng)獲取不了網(wǎng)關(guān)MAC地址,網(wǎng)絡(luò)工程師說(shuō)是網(wǎng)絡(luò)設(shè)備的問(wèn)題,具體不清。 解決: arp綁定,arp -i bond0 -s 192.168.3.254 00:00:5e:00:01:64

8.http服務(wù)無(wú)法啟動(dòng)一例

問(wèn)題:某天研發(fā)某同事說(shuō)網(wǎng)站前端環(huán)境http無(wú)法啟動(dòng),我上去看了下。報(bào)如下錯(cuò): /etc/init.d/httpd start Starting httpd: [Sat Jan 29 17:49:00 2011] [warn] module antibot_module is already loaded, skipping Use proxy forward as remote ip : true. Antibot exclude pattern : .*.[(js|css|jpg|gif|png)] Antibot seed check pattern : login (98)Address already in use: make_sock: could not bind to address [::]:7080 (98)Address already in use: make_sock: could not bind to address 0.0.0.0:7080 no listening sockets available, shutting down Unable to open log [FAILED] 原因: 1)端口被占用:表面看是7080端口被占用,于是netstat -npl|grep 7080看了下發(fā)現(xiàn)7080沒(méi)有占用; 2)在配置文件中重復(fù)寫(xiě)了端口,如果在以下兩個(gè)文件同時(shí)寫(xiě)了Listen 7080 /etc/httpd/conf/http.conf /etc/httpd/conf.d/t.10086.cn.conf 解決: 注釋掉/etc/httpd/conf.d/t.10086.cn.conf的Listen 7080,重啟,OK。

9.too many open file

問(wèn)題:報(bào)too many open file錯(cuò)誤
解決:終極解決方案echo “” >> /etc/security/limits.confecho “*                soft   nproc          65535″ >>  /etc/security/limits.confecho “*                hard   nproc          65535″ >>  /etc/security/limits.confecho “*                soft   nofile         65535″ >>  /etc/security/limits.confecho “*                hard   nofile         65535″ >>  /etc/security/limits.confecho “” >> /root/.bash_profileecho “ulimit-n   65535″ >> /root/.bash_profileecho “ulimit  -u   65535″ >> /root/.bash_profile
最后重啟機(jī)器 或者執(zhí)行 ulimit -u 655345 && ulimit -n 65535

10.ibdata1和mysql-bin致磁盤(pán)空間問(wèn)題

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

以上是“Linux運(yùn)維常見(jiàn)問(wèn)題有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI