python 远程链接linux (类似MobaXterm ssh链接)
一、paramiko
1.1 exec_command()函数
是将服务器执行完的结果一次性返回
1.2 invoke_shell()函数
invoke_shell 函数类型shell伪终端,链接后,像MobaXterm ssh链接。可以将命令执行结果分批返回。
二、示例
import paramiko
import time
ssh = paramiko.SSHClient()
gl_result = ' '
def ssh_login(ip, port, username, passwd):
global ssh
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip, port, username, passwd)
return
def ssh_exe_cmd(cmd):
global ssh
global gl_result
stdin, stdout, stderr = ssh.exec_command(cmd)
str2 = stdout.read().decode('utf-8')
gl_result += str2
print(str2)
return
def write_log_to_file(file): //执行log写文件
global gl_result
with open(file, 'w') as file:
file.write(gl_result)
gl_result = ' '
def ssh_invoke_cmd(cmd):
global ssh
invoke = ssh.invoke_shell()
invoke.send(cmd+'\n')
j=1
global gl_result
while True:
j=j+1
time.sleep(1)
stdout = invoke.recv(8096)
print(stdout.decode())
str1 = stdout.decode('utf-8')
if str1.endswith(':~# '): #判断命令解释 可以修改
gl_result += str1
invoke.send('q')
break;
gl_result += str1
return
ssh_login('xxx.xx.xxx.xxx', 22, 'xxx', 'xxx')
ssh_invoke_cmd('df -h')
file = 'log.text'
write_log_to_file(file) #保存log文件
ssh.close()
本文介绍了如何使用Python的paramiko库实现类似MobaXterm的SSH连接Linux服务器,包括exec_command和invoke_shell两种方法,以及一个完整的连接、执行命令并保存日志的示例。
414

被折叠的 条评论
为什么被折叠?



