python通过 paramiko模块批量执行多台机器的命令
2020-08-10 16:10
916 查看
背景:比如我们在公司测试环境需要统计100台机器的磁盘使用情况,我们可以通过自动化工具ansible或者salt进行批量扫描查看
假如我们在之前没有安装这些自动化工具,有这个需求就比较费事了,需要一台一台登录上去查看这样就比较费事了
今天我们就解决一下这个问题,通过python的模块 paramiko来实现
'''
#!/usr/bin/pythonls
-- coding: UTF-8 --
import paramiko
def name():
while True:
cmd = input('>>>')
queren = input('请再次确认是否要执行该命令,请输入>> y/yes|n/no :').upper().lower().strip()
if cmd =='quit' or cmd == 'exit':
break
elif queren == 'y' or queren == 'Y' or queren == 'yes' or queren == 'YES': print('接下来开始执行命令!!') elif queren == 'n' or queren == 'N' or queren == 'no' or queren == 'NO': print('不执行该命令,请重新输入!!') continue a=['IP地址','ip地址'] # def aa(hostname): for hostname in a: hostname username = 'root' # 这些机器 的账号和密码要一致才行 password = 'xxxxxxx' host='主机%s执行\n' %(hostname) print('\033[1;32;40m%s\033[0m' % host) paramiko.util.log_to_file('paramiko.log') s = paramiko.SSHClient() # s.load_system_host_keys() s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) s.connect(hostname=hostname, username=username, password=password) stdin, stdout, stderr = s.exec_command(cmd) # print(stdout.read().decode('utf-8')) res=stdout.read() res=res.decode('utf-8') print(res)
name()
'''
我们可以测试一下
相关文章推荐
- python 通过paramiko模块批量执行ssh命令
- 利用python的paramiko模块,自定义函数远程批量执行shell命令
- python模块学习之paramiko远程执行命令,文件上传、下载
- 利用python的paramiko模块ssh登录本地虚拟机并执行任意命令
- 利用python fabric模块写的批量操作远程主机脚本(命令执行,上传、下载文件)
- 通过paramiko模块在远程主机上执行命令
- paramiko模块的简单应用实现python免交互登录另一台服务器并执行命令
- python paramiko模块中设置执行命令超时值
- Python paramiko模块 实现 ssh远程执行命令 上传下载文件 堡垒机模式下的远程命令执行
- python模块paramiko的上传下载和远程执行命令方法
- python通过getopt模块获取执行命令参数
- python脚本 对批量机器执行命令和发送文件
- python下paramiko模块学习之一:ssh登录和执行命令
- python模块paramiko的上传下载和远程执行命令方法
- python模块paramiko的上传下载和远程执行命令
- python下paramiko模块学习之一:ssh登录和执行命令
- python模块paramiko实现上传下载与远程执行命令的代码
- python模块paramiko的上传下载和远程执行命令方法
- python通过getopt模块如何获取执行的命令参数详解
- python模块学习之paramiko远程执行命令,文件上传、下载