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和用户名