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

python paramiko外部传参和内部调用命令的方法的更多相关文章
- (1)构造方法和方法重载 (2)this关键字 (3)方法的传参和递归调用
1.构造方法和方法重载如: Person p = new Person(); - 声明Person类型的引用p指向Person类型的对象 p.show(); - 调用名字为show()的成员方法 1. ...
- Python学习杂记_8_从程序外部传参的办法sys.argv
Python用 sys.argv[] 实现从程序外部传参 “外部”的含义,其实就是这些参数不是你在程序中定义的,而是在程序之外通过输入操作传递进来的.sys.argv 会返回一个元组,元组的首个元素即 ...
- Python菜鸟之传参
Python菜鸟之传参 : 看上面enroll( )函数的调用传参 enroll("twiggy","M",city="上海", age=2 ...
- Python中的传参是传值还是传址?
传值:在C++中,传值就是把一个参数的值给这个函数,其中的更改不会影响原来的值. 传址:即传引用,直接把这个参数的内存地址传递进去,直接去这个内存地址上进行修改. 但是这些在Python中都没有,Py ...
- python 2 控制台传参,解包,编码问题初探
python 2 控制台传参,需要从sys模块中导入argv,argv返回的第一个参数当前脚本(script)的文件名,后面是参数,参数个数必须和解包(unpack)时使用的参数个数一致 1.本例子演 ...
- 是否可以从一个static方法内部调用非static方法?
不可以.静态成员不能调用非静态成员. 非static方法属于对象,必须创建一个对象后,才可以在通过该对象来调用static方法.而static方法调用时不需要创建对象,通过类就可以调用该方法.也就是说 ...
- 【原】Gradle调用shell脚本和python脚本并传参
最近由于项目自动化构建的需要,研究了下gradle调用脚本并传参的用法,在此作个总结. Pre build.gradle中定义了$jenkinsJobName $jenkinsBuild两个Jenki ...
- 关于Python中包裹传参和解包裹的理解
1.包裹传参 首先思考一个问题:为什么要有包裹传参?原因包括但不仅限于以下两点:①不确定参数的个数.②希望函数定义的更加松散灵活 包裹传参分两种:包裹位置传参和包裹关键字传参.先看包裹位置传参: 在这 ...
- 初识python 函数(定义,传参,返回值)
python基础(二): 菜鸟教程基础知识讲解的非常全面,内容选择我认为的重点输出一遍 函数: 定义一个函数: 你可以定义一个由自己想要功能的函数,以下是简单的规则: def fun(arg): pa ...
随机推荐
- javascript案例之照片墙
效果图: ----------------------------------------------------------------------------------------------- ...
- c++小游戏——俄罗斯方块
#include<cstdio> #include<windows.h> #include<ctime> int a[24][17],i,j,tim=800,ti= ...
- HHyperledger Fabric 之 TLS (fabric-java-sdk)使用grpcs方式访问fabric
我在很多fabric的技术群中,很多使用javasdk连接fabric的同友,初始的时候很多都没有成功的使用TLS进行区块链交易: 是sdk不支持,还是我们没有找到解决方案? 其实不然,我这里使用的是 ...
- maven install时跳过测试
xl_echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!! - ...
- Docker 工作原理及容器化简易指南
Docker 非常棒! 它使软件开发者无需担心配置和依赖性,在任何地方打包,发送和运行他们的应用程序.而在与 Kubernetes 相结合后,它使应用集群部署和管理变得更方便.这使得 Docker 深 ...
- 【Java中级】(五)异常处理
1.什么是异常 异常定义:导致程序的正常流程被中断的事件,叫做异常. 2.异常处理 try catch finally throws package exception; import java.io ...
- 《JSP数据交互总结》
1.1.1为什么需要动态网页 静态网页的内容是固定的,不能提供个性化和定制化的服务,因此,动态网页技术逐渐发展起来. 1.1.2什么是动态页面 动态网页是指在服务器端运行的使用程序语言设计的交互式网页 ...
- JSP数据交互(一)
1.JSP内置对象:JSP内置对象是 Web 容器创建的一组对象,不用通过手动new就可以使用 2.JSP9大内置对象: 对象名称 类型 request (请求对象) javax.servl ...
- python常用函数进阶(2)之map,filter,reduce,zip
Basic Python : Map, Filter, Reduce, Zip 1-Map() 1.1 Syntax # fun : a function applying to the iterab ...
- WTM 构建DotNetCore开源生态,坐而论道不如起而行之
作为一个8岁开始学习编程,至今40岁的老程序员,这辈子使用过无数种语言,从basic开始,到pascal, C, C++,到后来的 java, c#,perl,php,再到现在流行的python. 小 ...