zoukankan      html  css  js  c++  java
  • paramiko学习笔记

    1.Linux安装paramiko要先安装好python-devel和PyCrypto的模块
    Windows安装paramiko要先安装好pycrypto和ecdsa两个模块。
    2.paramiko例子
    1)ssh例子
    [root@scctmpdev02101:/root/python]#vim paramikosshv2.py
    #!/usr/bin/python
    #coding=utf-8 #python2的编码默认是ASCII,你的文件里有中文就必须要用utf-8编码,只要在文件需要在文件
    import paramiko
    import sys #读取参数
    import getpass #人机交互读取密码
    USER = 'root'
    PASSWORD = 'xxxxxx'
    PASSWORD = getpass.getpass('Input Password: ')
    COMMAND = 'touch /tmp/20170307103210'
    COMMAND = "touch /tmp/`date +%Y%m%d%H%M%S`"
    COMMAND =  open(sys.argv[1]).read()
    #for line in open('/root/python/host_hdpdev').readlines():#absolute path or relative
    for line in open(sys.argv[2]).readlines():
            if  line.startswith('#'):
                    print 'the line is not  a valid IP:' + line.strip()
            else:
                    print 'the line is a valid IP:' + line.strip()
                    IP = line
                    paramiko.util.log_to_file('/root/python/paramiko.log')#每次都是追加写入
                    s = paramiko.SSHClient()
                    s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
                    s.connect(hostname=IP,username=USER,password=PASSWORD)
                    stdin,stdout,stderr = s.exec_command(COMMAND)
                    print line.strip() + '执行结果' + ' ' + stdout.read() + ' ' + stderr.read()
                    s.close
    2)sftp例子
    [root@scctmpdev02101:/root/python]#vim paramikosftp.py
    import sys,paramiko,threading,getpass,os
    action = sys.argv[1]
    flag = '-p'
    username = sys.argv[3]
    password = getpass.getpass('Password: ')
    sourcepath = sys.argv[4]
    targetpath = sys.argv[5] if not sys.argv[5].endswith('/') else sys.argv[5] + '/' + os.path.basename(sourcepath)
    #for line in open('/root/python/host_hdpdev').readlines():#absolute path
    for line in open(sys.argv[2]).readlines():#absolute path
            if  line.startswith('#'):
                    print 'the line is not  a valid IP:' + line.strip()
            else:
                    print 'the line is a valid IP:' + line.strip()
                    host=line.strip()
                    t = paramiko.Transport((host,22))
                    try:
                            t.connect(username=username,password=password)
                    except Exception as e:
                            print host,str(e)
                    sftp = paramiko.SFTPClient.from_transport(t)
                    #if  action == flag:
                    #if  action.strip() == '-p':
                    if  (action == '-p'):
                            sftp.put(sourcepath,targetpath)
                    else:
                            sftp.get(sourcepath,targetpath+'_'+host)
                    t.close()
    3 for例子

    1)for i in range(0,10):
            if i > 5:
                break; #在值为6的时候退出for循环
            else:
                    print "hello world";

    2)for遍历读取文件行

    for line in open('/root/python/host_hdpdev').readlines():#absolute path
            if  line.startswith('#'):
                    print 'the line is not  a valid line.strip()' + line.strip()
            else:
                    print 'the line is a valid line.strip():' + line.strip()

    for和open文件结合的用法
    for val in open("./host_hdpdev","r").read():#遍历文件的第一行,把第一行中的每个字符作为一行来读取
        print val

    for val in open("./host_hdpdev","r").readline():#把文件的每个字符作为一行来读取
        print val

    for val in open("./host_hdpdev","r").readlines():#一行一行读取文件
        print val

  • 相关阅读:
    1052 Linked List Sorting (25 分)
    1051 Pop Sequence (25 分)
    1050 String Subtraction (20 分)
    1049 Counting Ones (30 分)
    1048 Find Coins (25 分)
    1047 Student List for Course (25 分)
    1046 Shortest Distance (20 分)
    1045 Favorite Color Stripe (30 分)
    1044 Shopping in Mars (25 分)
    1055 The World's Richest (25 分)
  • 原文地址:https://www.cnblogs.com/dotagg/p/6520252.html
Copyright © 2011-2022 走看看