程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python遠程監控腳本:使用paramiko和psutil監控遠程機器的cpu、內存、磁盤、網絡使用情況

編輯:Python

題目

使用python寫腳本獲取對方服務器的cpu使用率、內存使用率、磁盤使用情況、網絡帶寬的使用情況

前提:建立免密通道

SSH免密登錄:https://blog.csdn.net/qq_44212783/article/details/126029102

准備工作:

yum -y install python3-devel gcc gcc-devel
pip3 install pycrypto
pip3 install paramiko==1.17.1
pip3 install psutil

監控腳本psut.py
#!/usr/bin/python3
import psutil
import datetime
def linux_monitor():
# cpu的使用率
cup_per = psutil.cpu_percent()
# 內存使用率
mem_per = psutil.virtual_memory().percent
# 磁盤使用率
disk_per = psutil.disk_usage('/').percent
# 網絡使用情況 收發多少數據 net.bytes_recv、net.bytes_sent
net = psutil.net_io_counters()
# 獲取當前系統時間
current_time = datetime.datetime.now().strftime("%F %T")
# 拼接顯示
str = ""
str+= "|---------time--------|---cpu---|----memory----|----disk----|--------------net-------------|\n"
str+= "| %s | %s%% | %s%% | %s%% | recv:%.2fMB sent:%.2fMB |\n" \
% (current_time, cup_per, mem_per, disk_per, net.bytes_recv/1024/1024, net.bytes_sent/1024/1024)
print(str)
linux_monitor()
遠程控制腳本monitor.py
#!/usr/bin/python3
import paramiko
# 指定本地的RSA私鑰文件
key = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa')
# 建立連接
trans = paramiko.Transport(('192.168.22.127', 22))
trans.connect(username='root', pkey=key)
# 創建ssh對象,將_transport指定為上面的trans
ssh = paramiko.SSHClient()
ssh._transport = trans
# 創建sftp對象,指定連接的通道
sftp = paramiko.SFTPClient.from_transport(trans)
# 上傳psut.py文件
sftp.put(localpath='/root/psut.py', remotepath='/root/p.py')
# 添加可執行權限,運行腳本
ssh.exec_command('chmod +x /root/p.py')
stdin, stdout, stderr = ssh.exec_command('/root/p.py')
print(stdout.read().decode())
#關閉連接
ssh.close()

操作: 在本地(170)運行monitor.py腳本,可以監控遠程機器(127)的cpu、內存、磁盤、網絡的使用情況

操作: 運行psut.py腳本,查看本地的cpu、內存、磁盤、網絡的使用情況,顯然和遠程機器不一樣


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved