python paramiko模块的使

  • 2020 年 1 月 14 日
  • 笔记

一般使用paramiko的功能就是通过ssh远程执行命令,远程(上传、下载)传输文件等等

依赖包:/usr/local/python27/bin/pip install pycrypto

下载包 paramiko

#wget http://en.onlinedown.net/down/paramiko-1.7.7.1.zip  #unzip paramiko-1.7.7.1.zip  #cd paramiko-1.7.7.1  #python setup.py build  #python setup.py install  #!/usr/bin/env python  #vim paramiko.py  #!/usr/bin/env python  import paramiko            \导入模块     hostname='192.168.10.106'   \定义需要链接的主机  port=22                      \定义链接的端口  username='root'               \定义链接的账号  password='123456'              \定义登陆密码  if __name__=='__main__':        \如果当前的模块名称等于启动的主模块运行,就执行如下      paramiko.util.log_to_file('paramiko.log')   \指定执行的日志文件,日志名为paramiko.log      s=paramiko.SSHClient()          \创建客户端链接服务端的对象s      s.load_system_host_keys()        \ 加载主机秘钥      s.connect(hostname,port,username,password)  \链接主机      stdin,stdout,stderr=s.exec_command('ifconfig')                      \执行命令 ifconfig    stdin:标准输入stdout:标准输出 stderr:标准错误      print stdout.read() \打印标准输出的结果      s.close()            \关闭链接  从服务器端上传或下载文件  #!/usr/bin/env python  import paramiko      导入模块     import os  hostname='192.168.10.106'   \定义需要链接的主机  port=22                      \定义链接的端口  username='root'               \定义链接的账号  password='123456'              \定义登陆密码  dir_path='/home/soul/temp'      \定义请求下载的文件路径  if __name__=='__main__':   t=paramiko.Transport((hostname,port))   \创建一个传输对象   t.connect(username=username,password=password)  \建立链接服务器   sftp=paramiko.SFTPClient.from_transport(t)       \创建一个下载传输对象sftp   files=sftp.listdir(dir_path)                      \建立一个files对象,用于存放listdir从指定的路径dir_path中拿到的文件   for f in files:          \定义f从存放的文件中轮询       print 'Retrieving',f  \打印拿到的文件名称       sftp.get(os.path.join(dir_path,f),f)   \从指定路径下 下载文件       t.close()        \关闭链接

下载:get  上传put

如从本地将/home/soul/temp/paramiko-1.7.7.1.zip文件上传到服务器的/home/路径下

sftp.put('/home/soul/temp/paramiko-1.7.7.1.zip','/home/paramiko-1.7.7.1.zip')

t.close()