溫馨提示×

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

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

生產(chǎn)事故:誤刪/lib64,移走/lib64目錄

發(fā)布時(shí)間:2020-06-22 22:43:42 來(lái)源:網(wǎng)絡(luò) 閱讀:1895 作者:弓長(zhǎng)善慈 欄目:移動(dòng)開(kāi)發(fā)

事故背景:

有一臺(tái)機(jī)器裝不上nagios監(jiān)控,yum install openssl報(bào)一個(gè)關(guān)于“l(fā)ibkrb5.so.3”沖突的錯(cuò)誤。

解決過(guò)程:

1./lib64事故

關(guān)于“l(fā)ibkrb5.so.3”沖突的錯(cuò)誤,查了一些文章沒(méi)有解決,就想著把libkrb5卸掉,rpm -e libkrb5.rpm,卸載有關(guān)聯(lián)沖突,然后就rpm -e libkrb5.rpm --nodeps(事實(shí)證明,如果不清楚軟件的依賴(lài),最好不要“--nodeps”),一卸載就發(fā)現(xiàn)問(wèn)題了,發(fā)現(xiàn)yum命令用不了了,提示缺少“l(fā)ibkrb5.so.3”,然后我就從別的機(jī)器上拷貝了一個(gè)libkrb5.so.3到這臺(tái)機(jī)器上,然后yum繼續(xù)提示少別的文件,經(jīng)驗(yàn)告訴我,這可能還缺少別的很多庫(kù)文件,由于是生產(chǎn)的機(jī)器,我不想花太多時(shí)間整,所以就想著從別的機(jī)器上拷貝/lib64到這臺(tái)機(jī)器,想著想著,手就不由自主的敲了個(gè)“mv /lib64 /tmp”,敲完我就后悔了,趕緊“l(fā)s”,發(fā)現(xiàn)用不了了,然后發(fā)現(xiàn)只有cd命令能用,其他的都用不了,這個(gè)時(shí)間點(diǎn)大概是15:00,說(shuō)實(shí)話(huà),有點(diǎn)慌,因?yàn)樯a(chǎn)上沒(méi)有遇到過(guò)這種事,在虛擬機(jī)上試過(guò)“rm -rf /”能刪,但是也沒(méi)恢復(fù)過(guò)。

2.模擬并處理/lib64事故

想了一分鐘,決定在虛擬機(jī)上模擬這個(gè)事故,打開(kāi)虛擬機(jī),然后mv /lib64 /tmp,重啟,進(jìn)不去系統(tǒng),一直卡在開(kāi)機(jī)界面。然后就開(kāi)始搜索“誤刪/lib64”的相關(guān)文章,幾乎沒(méi)找到有用的,可能是因?yàn)檫@個(gè)事故確實(shí)比較少,生產(chǎn)中沒(méi)人會(huì)這么做,實(shí)驗(yàn)的話(huà)可能也不會(huì)做這個(gè)。沒(méi)搜到“誤刪/lib64”的文章,但是有個(gè)文章的“l(fā)inux修復(fù)模式”提醒了我,心想:我可以先進(jìn)了系統(tǒng),然后把/tmp目錄下的lib64拷貝回/根目錄,這樣不就解決問(wèn)題了嗎。

然后我就在虛擬機(jī)上試驗(yàn),進(jìn)入linux修復(fù)模式下后,發(fā)現(xiàn)/tmp目錄下的文件被刪了,然后就想到/tmp目錄下的文件是不是重啟后自動(dòng)刪除了,然后我就把光盤(pán)鏡像系統(tǒng)里的/lib64拷貝到崩潰的系統(tǒng)根目錄下,重啟系統(tǒng),依舊不行,這可能是依舊缺少什么庫(kù)文件導(dǎo)致的系統(tǒng)起不來(lái)。

很著急很著急,因?yàn)楝F(xiàn)在我誤認(rèn)為/tmp/lib64這個(gè)目錄在重啟系統(tǒng)后就被刪除了,而且鏡像里的/lib64拷貝到崩潰系統(tǒng)里也是不起作用的,沒(méi)辦法了,我只能想著把系統(tǒng)里的東西導(dǎo)出來(lái),這是一臺(tái)發(fā)布機(jī)器,深圳那邊的同事專(zhuān)門(mén)用來(lái)發(fā)布代碼的,恰巧當(dāng)天晚上就要用。

大概17:00左右,我聯(lián)系深圳那邊同事:勇哥,那臺(tái)發(fā)布機(jī)器被我搞崩了,想問(wèn)問(wèn)你重要的文件是不是集中存放在哪,我試試能不能拷貝出來(lái)。聯(lián)系之后,我基本已經(jīng)做好了將文件拷貝出來(lái)的準(zhǔn)備。

17:30,腦子里突然想到,進(jìn)入了linux修復(fù)模式后,奔潰系統(tǒng)的tmp目錄不是/tmp,而是/mnt/sysp_w_picpath/tmp,所以我就進(jìn)入/mnt/sysp_w_picpath/tmp,發(fā)現(xiàn)lib64目錄還在,然后我就mv /mnt/sysp_w_picpath/tmp/lib64 /mnt/sysp_w_picpath/,重啟系統(tǒng),正常進(jìn)入。開(kāi)森。

3.處理生產(chǎn)上的/lib64事故

然后我就在vCenter的存儲(chǔ)上上傳了一個(gè)iso鏡像(存儲(chǔ)上沒(méi)有鏡像,我們新裝機(jī)是走cobbler),可惡,上傳鏡像花了半小時(shí)。。這時(shí)候已經(jīng)18:30了,我是有多緊張,20:00就要用這個(gè)機(jī)器,這個(gè)事經(jīng)理還不知道。。。然后就設(shè)置BIOS開(kāi)機(jī)光盤(pán)啟動(dòng),選擇存儲(chǔ),前兩次因?yàn)檫x錯(cuò)了存儲(chǔ)導(dǎo)致沒(méi)光盤(pán)啟動(dòng),后來(lái)選對(duì)了存儲(chǔ)也還進(jìn)不去,試了三四次都進(jìn)不去,我慌了,這是什么問(wèn)題呢,難道鏡像有問(wèn)題?沒(méi)理由啊,拷貝沒(méi)報(bào)錯(cuò)。我就查,查查查,么查到,后來(lái)有個(gè)人一句話(huà)點(diǎn)醒我了:光盤(pán)啟動(dòng)的話(huà),如果你沒(méi)有勾選“開(kāi)機(jī)啟動(dòng)”的話(huà),那就別往下看了。。突然想到,我選了鏡像但是沒(méi)有勾選“開(kāi)機(jī)自動(dòng)掛載”,可不就進(jìn)不去嘛,真是忙中出錯(cuò)。一切都處理好了,進(jìn)入了系統(tǒng),然后mv /mnt/sysp_w_picpath/tmp/lib64 /mnt/sysp_w_picpath/,重啟,正常進(jìn)入系統(tǒng)了,但是又有新問(wèn)題了:密碼明明是正確的,但是提示密碼不正確。

慌亂之中采取了網(wǎng)管的措施,重啟,重啟之后問(wèn)題依舊,此時(shí)是19:00,經(jīng)理走了,大多數(shù)同事都走了,沒(méi)人知道我正在處理一個(gè)線(xiàn)上事故。。。說(shuō)實(shí)話(huà),這時(shí)候我心里怕了,我怕一步一個(gè)錯(cuò),但是我分析著既然系統(tǒng)都進(jìn)去了,單用戶(hù)模式應(yīng)該沒(méi)問(wèn)題,改改密碼吧,然后就把系統(tǒng)密碼改成123456,重啟后,正常進(jìn)入系統(tǒng)了,發(fā)現(xiàn)一切都正常,沒(méi)問(wèn)題了吧。。。然后我遠(yuǎn)程連接這臺(tái)機(jī)器,提示超時(shí),回到vmware上,發(fā)現(xiàn)系統(tǒng)的sshd服務(wù)沒(méi)起,查看了這個(gè)服務(wù)是開(kāi)機(jī)啟動(dòng)的,然后我就手動(dòng)起,提示少“l(fā)ibkrb5.so.3”,等于這個(gè)libkrb5.so.3庫(kù)文件不僅影響了yum,還影響了ssh服務(wù),然后我就又進(jìn)入linux的修復(fù)模式,將鏡像里的libkrb5.so.3拷貝到系統(tǒng),進(jìn)入系統(tǒng)后啟動(dòng)sshd服務(wù)正常,遠(yuǎn)程連接也行了,但是又有新問(wèn)題了,只能用root用戶(hù),切普通用戶(hù)就卡死,這又是什么問(wèn)題呢?難道是堡壘機(jī)后遺癥(公司用著堡壘機(jī)呢,出事故后我就把這臺(tái)機(jī)器從堡壘機(jī)上下了)?然后我就把sshd.config里的關(guān)于堡壘機(jī)的配置都清空了,還是不行。如果只能連接不能切用戶(hù),深圳那邊的用戶(hù)發(fā)布代碼還是有問(wèn)題的,所以這個(gè)問(wèn)題必須解決,但是沒(méi)有思路啊。

4.徹底恢復(fù)

不能沒(méi)有思路就不干啊,最起碼把能干的先干了。把這臺(tái)機(jī)器加到堡壘機(jī)吧,然后再說(shuō),不得不說(shuō)付費(fèi)的東西就是好用,也不知道什么原理,把這臺(tái)機(jī)器加到堡壘機(jī)后,就能正常切用戶(hù)了,這時(shí)候已經(jīng)是20:00多了(代碼因?yàn)橐恍┰蜓舆t發(fā)布了),然后我趕緊聯(lián)系深圳用戶(hù),讓他看看正常嗎,他回復(fù)正常,可算松了一口氣。。。


類(lèi)似事件:

這個(gè)事故出現(xiàn)后不久,又有一臺(tái)數(shù)據(jù)庫(kù)因?yàn)楦鼡Q磁盤(pán)導(dǎo)致系統(tǒng)起不來(lái)了,做的raid10,更換了一塊磁盤(pán),然后系統(tǒng)就崩了(事后分析是raid卡故障導(dǎo)致)。掛載鏡像,進(jìn)入linux修復(fù)模式,系統(tǒng)有五六個(gè)分區(qū),不知道問(wèn)題出在哪個(gè)分區(qū),就挨個(gè)掛載,發(fā)現(xiàn)/boot分區(qū)不能掛載,進(jìn)入/boot分區(qū),發(fā)現(xiàn)是空的,也就是說(shuō)/boot分區(qū)文件丟失,查了查資料,說(shuō)是重裝kernel可以解決,然后就重裝kernel,事實(shí)發(fā)現(xiàn)不行,然后就從別的機(jī)器上拷貝/boot分區(qū)內(nèi)容到崩潰的機(jī)器,重啟機(jī)器后,不像之前直接進(jìn)入grub界面了,但是讀完系統(tǒng)進(jìn)度條后就卡死了,可見(jiàn)還是有問(wèn)題。這臺(tái)數(shù)據(jù)庫(kù)上部署的3M高可用應(yīng)用,為了快速解決這個(gè)問(wèn)題,選擇了重裝系統(tǒng)并重新部署3M應(yīng)用。


在此提醒:

1、生產(chǎn)上操作雖然需要手速,但是回車(chē)別急著敲。

2、盡量別用rm命令,用mv替代。

3、不確定能處理好的事故,在處理了一段時(shí)候后最好上報(bào),不然會(huì)特別特別尷尬,不上報(bào)吧可能處理不好,上報(bào)吧又覺(jué)得這么晚才報(bào)有點(diǎn)2逼。


linux進(jìn)入修復(fù)模式:

救援模式有什么作用

◆可以更改root密碼;

◆恢復(fù)硬盤(pán)、文件系統(tǒng)操作;

◆系統(tǒng)啟動(dòng)不來(lái)的時(shí)候,只能通過(guò)救援模式來(lái)啟動(dòng);

救援模式啟動(dòng)的步驟如下:

1、首先開(kāi)機(jī)進(jìn)入BIOS設(shè)置(每臺(tái)電腦進(jìn)入bios的方法不同根據(jù)自己的電腦進(jìn)入),BOOT啟動(dòng)順序?yàn)楣獗P(pán)優(yōu)先啟動(dòng) CD-ROM Drive 使用小鍵盤(pán)的+ -號(hào)調(diào)整上下順序;設(shè)置好后保存并退出。

如果是vmware workstation,可以“虛擬機(jī)→電源→開(kāi)機(jī)進(jìn)入固件”進(jìn)行設(shè)置BIOS;

如果是物理機(jī),直接F1 F2 F12什么的進(jìn)入BIOS,各有不同,看提示;

如果是exsi,右鍵虛擬機(jī),點(diǎn)編輯,先掛載了鏡像,然后修改開(kāi)機(jī)啟動(dòng)到BIOS界面即可。

生產(chǎn)事故:誤刪/lib64,移走/lib64目錄

2、重啟系統(tǒng)后進(jìn)入安裝啟動(dòng)菜單,上下鍵移動(dòng)到Rescue install system 救援安裝系統(tǒng);

生產(chǎn)事故:誤刪/lib64,移走/lib64目錄

3、選擇語(yǔ)言,保持默認(rèn)English

生產(chǎn)事故:誤刪/lib64,移走/lib64目錄

4、選擇鍵盤(pán)類(lèi)型,保持默認(rèn)us

生產(chǎn)事故:誤刪/lib64,移走/lib64目錄

5、是否啟動(dòng)網(wǎng)絡(luò),需要根據(jù)你實(shí)際情況進(jìn)行選擇,如果需要通過(guò)聯(lián)網(wǎng)拷貝數(shù)據(jù),選擇YES,在這里我們選擇NO;

生產(chǎn)事故:誤刪/lib64,移走/lib64目錄

6、進(jìn)入到Rescue界面,選擇Continue

生產(chǎn)事故:誤刪/lib64,移走/lib64目錄

7、本地系統(tǒng)掛載在/mnt/sysp_w_picpath下 如果要到root環(huán)境下,運(yùn)行 chroot /mnt/sysp_w_picpath 命令

生產(chǎn)事故:誤刪/lib64,移走/lib64目錄

8、三種選項(xiàng):shell 進(jìn)入命令行模式;fakd是診斷模式;reboot重啟電腦;我們這里選擇shell

生產(chǎn)事故:誤刪/lib64,移走/lib64目錄

9、進(jìn)入shell命令行,提示符為bash-4.1#

ls /mnt/sysp_w_picpath/ 顯示掛載的目錄為根目錄的文件

執(zhí)行chroot /mnt/sysp_w_picpath/ 將/mnt/sysp_w_picpath/目錄下的文件移動(dòng)到根目錄;

命令后提示符為sh-4.1#

ls    顯示為根目錄的文件;

生產(chǎn)事故:誤刪/lib64,移走/lib64目錄

事實(shí)上,缺少系統(tǒng)文件會(huì)導(dǎo)致“chroot /mnt/sysp_w_picpath”出錯(cuò),查也查不出來(lái)什么,因?yàn)椴还苋笔裁炊际墙y(tǒng)一的錯(cuò)誤提示“/bin/bash。。。?!?,像我上面缺少/lib64目錄、缺少/boot下的文件,在“chroot /mnt/sysp_w_picpath”時(shí)都會(huì)報(bào)錯(cuò),而且報(bào)錯(cuò)一樣。。??梢圆焕頃?huì)這個(gè)命令,你干啥干啥,該修改文件修改文件,該拷貝目錄拷貝目錄,不影響。

10、在sh-4.1#模式下需要先exit退出,回到bash-4.1#才可以reboot重啟系統(tǒng);

生產(chǎn)事故:誤刪/lib64,移走/lib64目錄



向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