欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

简易上手:使用Python的paramiko模块进行自动化任务管理

最编程 2024-02-10 09:40:27
...

paramiko是SSH协议的python实现,paramiko可以在Python代码中直接使用SSH协议对远程服务器执行操作,而不是调用ssh命令对远程服务器进行操作。

安装

sudo pip install paramiko
python -c "import paramiko"

SSHClient类与SFTPClient类

paramiko包含两个核心组件,分别是SSHClient和SFTPClient,前者的作用对应于Linux下的ssh命令,后者的作用对应于Linux下的sftp命令。

  1. SSHClient类是对SSH会话的封装,该类封装了传输(transport)、通道(channel)及SFTPClient建立的方法(open_sftp),通常用于执行远程命令。SSHClient类的常用方法有以下几个:
  • connect() - 实现远程服务器的连接与认证,hostname是必传的参数
connect(self, hostname, port=22, username=None, password=None, pkey=None, key_filename=None, timeout=None, allow_agent=True, look_for_keys=True, compress=False)
  • set_missing_host_key_policy() - 设置远程服务器没有记录在本地know_hosts文件中时的应对策略。目前支持三种策略,分别是

    • AutoAddPolicy - 自动添加服务器到know_hosts文件
    • RejectPolicy - 拒绝本次连接(默认策略)与
    • WarningPolicy - 警告并将服务器添加到know_hosts文件中
  • exec_command() - 在远程服务器上执行Linux命令的方法

  • open_sftp() - 在当前ssh会话的基础上创建一个sftp会话。该方法会返回一个SFTPClient对象。

  1. SFTPClient类是对SFTP客户端的封装,用以实现远程文件操作,如文件上传、下载、修改文件权限等操作。SFTPClient类常用的方法有以下几个:
  • put():上传本地文件到远程服务器;
  • get():从远程服务器下载文件到本地;
  • mkdir():在远程服务器上创建目录;
  • remove():删除远程服务器中的文件;
  • rmdir():删除远程服务器中的目录;
  • rename():重命名远程服务器中的文件或目录;
  • stat():获取远程服务器中文件的详细信息;
  • listdir():列出远程服务器中指定目录下的内容;

paramiko的基本使用

paramiko的基本使用