离线监控linux系统各进程内存占用率和CPU占用率

SSH命令

SSH是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机.

如果有一台Linux服务器或者运行Linux系统的计算机在运行,但是该服务器没有显示器和鼠标键盘等外设,此时需要用另外一台计算机连接到这个服务器上,在另外一台电脑上对这个服务器进行操作.

 此时就需要SSH命令.

SSH命令格式: 假定你要以用户名user,登录远程主机host

ssh user@host

例子:

ssh name@192.168.90.212

输入上述命令之后,还需要输入密码.

通过ssh命令,在一台主机上可以阅读,编辑,执行另一台主机的文件,还可以获得另一台主机的信息;

换句话说,通过ssh命令可以远程执行另一台主机的top,命令,得到该服务器上各个进程的内存占用率和CPU占用率.

编写shell脚本离线获取Linux系统各进程内存占用率和CPU占用率

#!/usr/bin/expect
spawn ssh root@192.168.139.212 "top -b"
expect "password" 
send "root\r"
interact

通过上述脚本,可以离线获取另一台主机各进程内存占用率和CPU占用率,并且不要要输入密码.

注: expect是一种脚本语言,它能够代替我们实现与终端的交互

利用Python的paramiko包离线获取Linux系统各进程内存占用率和CPU占用率

 import paramiko


 def monitoring(address, name):
     # 建立远程连接
     transport = paramiko.Transport((address, 22))
     transport.connect(username=name, password=name)

     # 实例化SSH对象
     ssh = paramiko.SSHClient()
     ssh._transport = transport

     # 执行远程命令
     cmd = 'top -b -i -n 1'
     stdin, stdout, stderr = ssh.exec_command(cmd)
     for linea in stdout.readlines():
         print(line)
            
     transport.close()

上述函数需要传入address和用户名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值