記一次生產環境中得刪系統庫行為

2022-08-19 09:18:12 字數 1398 閱讀 7417

由於在生產環境中需要使用python 中得乙個包tensorflow在機器中匯入包發現有以下報錯

如圖所示

此圖為公升級後得截圖,正常應該指向是沒公升級前libc-2.12.so

然後我發現 在/bigdata/anaconda/lib 下面有 libc-2.17.so就考慮把libc-2.17.so拷貝到/lib64下面然後修改軟連線

cd /usrlib64

rm libc.so.6

ln -s libc-2.17.so libc.so.6  然後悲劇就發生了 發現這裡報錯。。。我使用其他命令。。都報錯。。。

解決辦法:

既然命令無法定址到軟連線,那麼直接命令列給他就是了,網上看到了兩種方法

1、ldconfig -l -v /lib64/libc-2.12.so

這裡寫的libc庫必須是原來使用的而不是你更新過的

2、ld_preload=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6

ld_preload允許你定義在程式執行前優先載入的動態鏈結庫,因此在使用ln前就載入了lib庫,而不是等到使用ln時載入,這樣就能臨時使用命令了

不僅僅是ln,只要加了ld_preload=/lib64/libc-2.12.so,後面可以跟一切因為libc.so.6被刪不能用的命令

我使用的是第二種方法

然後命令又能用了.

好了問題解決了 理解下原因 

glibc庫是很多命令操作得依賴庫 如圖

僅僅是iconv,基本上非系統命令都有這一條 libc.so.6 => /lib64/libc.so.6 ,因此libc.so.6至關重要,絕對不能刪,不能改名,能不能覆蓋就不知道了,想作死的可以試試
但是還是沒有解決根本問題。 怎麼解決呢? 老老實實得原始碼安裝吧

解決辦法:

wget

tar -xvf glibc-2.17.tar.gz

cd glibc-2.17

mkdir build

cd build

../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

make && make install

同樣經歷的還有    這位同學

記一次生產報too man open files

有一天私有雲無法訪問,馬上聯絡廠商,最後廠商發現好多容器不停重啟,經過日誌檢視發現平台開啟檔案控制代碼太多,很奇怪,就開始排查,最後發現乙個埠,定位到應用spring actuator.這個應用是我為了監控微服務而發布的乙個監控應用,馬上看日誌,發現應用報錯,too many open files,...

記一次生產環境獲取不到redis連線問題排查

最近線上環境總是不穩定,用著用著就會出現獲取不到redis連線的情況,檢視redis伺服器端配置,發現連線數不是很多,那麼為什麼又會出現如此情況呢?首先檢視redis服務端的配置 通過redis cli連線到redis伺服器 redis cli h 127.0 0.1 p 6379 a 密碼 獲取客...

記一次生產環境thrift服務的配置問題

問題現象 有客戶反饋我們的產品有時反應很慢,處理會出現超時。問題分析過程 1.第一反應可能是使用者增加,併發量太大了,詢問了運營,最近使用者註冊資料並沒有猛增。2.分析access日誌,發現有隔一段時間會出現幾個連續的請求響應時長超過30秒,並且這些請求都是使用乙個thrift服務的,而連redis...