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

  • 相关阅读:
    ETL Pentaho Data Integration (Kettle) 插入/更新 问题 etl
    Value Investment
    sqlserver 2008r2 表分区拆分问题
    HTTP与HTTPS的区别与联系
    别人分享的面经
    饥人谷开放接口(教程)
    java内存泄漏
    单例模式
    Maven项目上有小红叉咋办
    Socket通信1.0
  • 原文地址:https://www.cnblogs.com/zoulixiang/p/11401223.html
Copyright © 2011-2022 走看看