• python之paramiko模块学习之:上传与下载


     最近稍微学习了下python中的paramiko这个模块,发现他的功能还是很强大的,他的上传和下载功能十分适合运维人员的一些日常工作的需要,不 废话了,下面直接上代码了,先说下环境,本文是在centos6的环境下,python的版本是2.6.5,如果你没配好环境,可以看我写的http://www.50rescue.com/index.php/archives/10/   这里来配置好环境,建议你一定要按照好easy_inatall  这个工具,在学习中,感觉离不开她 了,呵呵。。。。
    贴别提醒:论坛的编辑器我不太会使用,我把源代码复制在文本文件里,传了上来,需要的可以下载:
    下面是上传的代码:

    • [root@centos6 python]# clear
    • [root@centos6 python]# cat paramiko-upload.py
    • #!/usr/bin/env python
    • import paramiko
    • import os
    • import datetime
    • hostname='74.63.229.*'
    • username='root'
    • password='abc123'
    • port=22
    • local_dir='/tmp/'
    • remote_dir='/tmp/test/'
    • if __name__=="__main__":
    • #    try:
    •         t=paramiko.Transport((hostname,port))
    •         t.connect(username=username,password=password)
    •         sftp=paramiko.SFTPClient.from_transport(t)
    • #        files=sftp.listdir(dir_path)
    •         files=os.listdir(local_dir)
    •         for f in files:
    •                 print''
    •                 print'#########################################'
    •                 print'Beginning to upload file %s ' % datetime.datetime.now()
    •                 print'Uploading file:',os.path.join(local_dir,f)
    •                # sftp.get(os.path.join(dir_path,f),os.path.join(local_path,f))
    •                 sftp.put(os.path.join(local_dir,f),os.path.join(remote_dir,f))
    •                 print'Upload file success %s ' % datetime.datetime.now()
    •                 print ''
    •                 print '##########################################'
    •      #except Exception:
    • #       print "error!"
    •         t.close()
    • [root@centos6 python]#


    下面是下载功能的代码:

    • [root@centos6 python]# cat paramiko-download.py
    • #!/usr/bin/env python
    • import paramiko
    • import os
    • import datetime
    • hostname='74.63.229.*'
    • username='root'
    • password='abc123'
    • port=22
    • local_dir='/tmp/'
    • remote_dir='/tmp/test/'
    • if __name__=="__main__":
    • #    try:
    •         t=paramiko.Transport((hostname,port))
    •         t.connect(username=username,password=password)
    •         sftp=paramiko.SFTPClient.from_transport(t)
    • #        files=sftp.listdir(dir_path)
    •         files=sftp.listdir(remote_dir)
    •         for f in files:
    •                 print ''
    •                 print '#########################################'
    •                 print 'Beginning to download file  from %s  %s ' % (hostname,datetime.datetime.now())
    •                 print  'Downloading file:',os.path.join(remote_dir,f)
    •                 sftp.get(os.path.join(remote_dir,f),os.path.join(local_dir,f))
    •                # sftp.put(os.path.join(local_dir,f),os.path.join(remote_dir,f))
    •                 print'Download file success %s ' % datetime.datetime.now()
    •                 print''
    •                 print'##########################################'
    •      #except Exception:
    • #       print "error!"
    •         t.close()
    • [root@centos6 python]#


          呵呵,代码比较简陋,异常处理也没加,只是自己学习中用的,如果要做成产品的话,还需要好多改进的地方,希望和大家一起进步。。。

  • 相关阅读:
    EYES组——软件体系结构上机规划
    淘宝软件架构分析分工
    淘宝网系统架构分析以及数据库架构简介
    关于编译器与解释器的区别
    Web前端之高斯模糊图片记
    解决JS浮点数(小数)计算加减乘除的BUG
    JS滚轮事件(mousewheel/DOMMouseScroll)了解
    阻止事件冒泡
    记一次编码相关问题
    细说Form(表单)
  • 原文地址:https://www.cnblogs.com/zhangzhang/p/2878094.html
Copyright © 2020-2023  润新知