首页 > 编程语言 > 详细

python paramiko外部传参和内部调用命令的方法

时间:2019-08-23 17:58:13      阅读:94      评论:0      收藏:0      [点我收藏+]

学习了很久的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

技术分享图片

 

python paramiko外部传参和内部调用命令的方法

原文:https://www.cnblogs.com/zoulixiang/p/11401223.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!