zoukankan      html  css  js  c++  java
  • python paramiko外部传参和内部调用命令的方法

    学习了很久的python,但在工作中使用的时候,却发现不知道怎么传参进入到python中执行,所以这两天就研究 了python args怎么将外部参数传入到python中执行

    1.首先使用python传统的内部函数调用的方式,看看函数调用命令怎么执行的,在对比外部args传参

    import paramiko
    import sys
    import os
    hostname = '192.168.1.202'
    port = 22
    username = 'root'
    password = '123456'
    
    def shells():
        #引入内部方法命令执行
        commds()
        #开启日志
        paramiko.util.log_to_file('paramiko.log')
        s = paramiko.SSHClient()
        #s.load_host_keys()
        #不适用公钥登陆
        s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        s.connect(hostname, port, username, password)
        #print(commds())
        for i in commds().rstrip().split(','):
            #循环commds里面得ls 和ifconfig命令,本来是一串字符串得,
            # 使用rstrip和split以,号 分割,是他们编程列表,循环
            print(i) #打印循环好的列表 ls,ifconfig
            stdin, stdout, stderr = s.exec_command(i) #分别执行这两个命令
            print(stdout.read().decode())
        s.close()
    
    def commds():
        #填写命令
        com = 'ls' +','+ 'ifconfig'
        #返回命令给shells方法调用
        return com
    
    if __name__ == '__main__':
        shells()

    2.执行结果

    3.第二中方法,就是将外部直接单个执行一个命令或者批量执行多个命令,这样就不用固定的命令执行,每次运行都可以将自己要想的命令添加到后面执行

    import paramiko
    import sys
    import os
    hostname = '192.168.1.202'
    port = 22
    username = 'root'
    password = '123456'
    
    def shells(args):
        #从外部调用脚本参数 例如: python paramiko_demo.py ls ifconfig
        #开启日志
        paramiko.util.log_to_file('paramiko.log')
        s = paramiko.SSHClient()
        #s.load_host_keys()
        #不适用公钥登陆
        s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        s.connect(hostname, port, username, password)
        #print(commds())
        for i in args:
            print(i) #打印循环好的列表 ls,ifconfig
            stdin, stdout, stderr = s.exec_command(i) #分别执行这两个命令
            print(stdout.read().decode())
        s.close()
    
    if __name__ == '__main__':
        
        args=sys.argv
        shells(args)

    执行单个命令 (该脚本有些缺陷,但是不影响效果展现哈)

    python paramiko_demo.py ls

     执行多个命令 

    python paramiko_demo.py ls ifconfig

  • 相关阅读:
    171. Excel Sheet Column Number (Easy)
    349. Intersection of Two Arrays (Easy)
    453. Minimum Moves to Equal Array Elements (Easy)
    657. Judge Route Circle (Easy)
    CSS笔记
    保存页面状态
    UI开发总结
    ubuntu 下配置munin
    反向代理配置
    JavaScript 高级程序设计第二版
  • 原文地址:https://www.cnblogs.com/zoulixiang/p/11401223.html
Copyright © 2011-2022 走看看