- 用pexpect开发一个脚本
(1)本地需要安装OPENSSH
(2)Linux需要安装SSH
(3)用SSH连接Linux: ssh@root192.168.30.1
(4)python代码:
from pexpect.pxssh import pxssh
import getpass
hostname = '192.168.30.1'
user = 'root'
pw = getpass.getpass()
s = pxssh()
s.login(hostname,user,pw)
s.sendline('ls -l')
s.prompt()
print(s.before.decode())
s.sendline('df')
s.prompt()
print(s.before.decode())
s.logout
- 用paramiko开发一个脚本,远程连接Linux,执行一句指令,将结果保存在一个json文件中。
(1)安装paramiko前需要先安装PyCrypto
(2)PyCrypto安装前需要先安装VS C++高版本
(3)脚本代码:
import paramiko
import time
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(
hostname='192.168.30.1',
username='root',
password='123456')
print("connected")
stdin, stdout, stderr = ssh.exec_command('java -version')
f = open('test01.json','w+')
print("aaaaaa")
f.write(stderr.read().decode('utf-8'))
print(f.read())
f.close()
ssh.close()
踩坑:exec_command远程发送指令一般都能通过stdout获取结果,但是执行java的指令如:java -version =, java -h等指令返回结果放在stderr 标准输出里