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.执行结果

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

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外部传参和内部调用命令的方法

执行多个命令

python paramiko_demo.py ls ifconfig

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

上一篇:附录A培训实习生-面向对象基础方法重载(3)


下一篇:方法构造和方法重载之奥特曼与大boss之战