编程界的xshell!python模块之paramiko

版权声明:本文为博主原创文章,转载时请注明出处链接。 https://blog.csdn.net/lk7688535/article/details/81036435

让我们用python编程,编写可DIY、且更智能的xshell和xftp吧!

摘要

  • 介绍paramiko模块
  • 安装paramiko
  • 使用paramiko

paramiko模块

paramiko是一个基于python编写的、使用ssh协议的模块,跟xshell和xftp功能类似,支持加密与认证,可以上传下载和访问服务器的文件。

可以利用paramiko模块写服务器脚本,在本地执行,比如持续更新代码,查看日志,批量配置集群等。

有个想法,甚至可以做个web,来通过paramiko模块定制我们需要的服务器功能,比如我通过网页批量执行命令安装部署集群,也可以通过在页面上传文件,完成更新服务器代码。

安装paramiko

pip install paramiko

使用paramiko

执行linux命令

import paramiko

#服务器信息,主机名(IP地址)、端口号、用户名及密码

hostname = "xxx.xxx.xx.170"
port = 11022
username = "rdadmin"
password = "818"

#创建SSH对象  
client = paramiko.SSHClient()
#自动添加策略,保存服务器的主机名和密钥信息
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接服务器
client.connect(hostname, port, username, password, compress=True)

# 执行linux命令
stdin, stdout, stderr = client.exec_command('ls /')

for line in stdout:
    print('... ' + line.strip('\n')) 
#or
print(stdout.readlines())

访问linux上的文件

#简历sftp链接
sftp_client = client.open_sftp()

#按路径访问txt文件
remote_file = sftp_client.open("/home/verified_list.txt") #文件路径
try:
    for line in remote_file:
        print(line.strip())
finally:
    remote_file.close()

上传与下载linux上的文件

#下载文件
sftp_client.get("/home/test.txt","./c.txt")

#上传文件
sftp.put("/a.txt","/home/b.txt")



# 或者直接连ftp服务器
transport = paramiko.Transport((hostname, port))
transport.connect(username = username, password = password)

sftp = paramiko.SFTPClient.from_transport(transport)

#下载文件
sftp.get("/home/test.txt","/a.txt")

#上传文件
sftp.put("/a.txt","/home/b.txt")

官方API

http://docs.paramiko.org/en/2.4/api/

猜你喜欢

转载自blog.csdn.net/lk7688535/article/details/81036435