快速批量运行命令

Ansible 是 redhat 提供的自动化运维工具,它是 Python编写,可以通过 pip 安装。

pip install ansible

它通过任务(task)、角色(role)、剧本(playbook) 组织工作项目,适用于批量化系统配置、软件部署等需要复杂操作的工作。

但对于批量运行命令的场景,ansible 就显得笨重和缓慢。

下面以在4台主机上计算/etc/hosts的md5值为例来说明。

ansible使用示例

time ansible compute -i host.invetory -f 4 -m shell -a "md5sum /etc/hosts"

compute 为主机定义文件中的主机组名称

-i 指定主机定义文件

-f 指定并发度为4

-m 指定python模块

-a 运行参数,即通过shell模块要运行的命令

注:需要事先设置好ssh免密登录。

总用时2.6 秒,比较慢。

我们可以采用其它的工具,比如 pdsh 或者 pssh。这两个工具都在 epel 源中,可以通过 yum 安装。

yum install -y pdsh*

yum install -y pssh

pssh使用示例

time pssh -H "ic-cmp01 ic-cmp02 ic-cmp03 ic-cmp4" -p 4 -i md5sum /etc/hosts

-H 指定主机列表,但不支持缩写方式;主机数量大时不太友好,但可写到文件中,通过 -h 指定;

-p 指定并发数量

-i 显示输出

输出示例

总用时 0.31秒,比ansible快8倍左右。

 pdsh使用示例

time pdsh -R ssh -f 4 -w ic-cmp0[1-4] md5sum /etc/hosts

-R 指定连接主机的方式,这里使用 ssh ,需要事先设置好免密登录。

-f 指定并发数量。

-w 指定要连接的主机;可以使用缩写方式,这里指定了4台主机;也支持主机组 -g 

md5sum /etc/hosts 是要在远程主机上运行的命令。

输出示例 

默认将主机上的标准输出和标准错误同时显示,并标示出来自哪一台主机。

仅用时0.29秒,比ansible快了近10倍。

个人感觉 pdsh 的输出更易读一些,特别是主机数量特别多时,而且pdsh还提供了输出整合的功能。

time pdsh -R ssh -f 4 -w ic-cmp0[1-4] md5sum /etc/hosts | dshbak -c

将上面的命令通过管道给 dshbak -c 进行整合后的输出如下: 

 是不是可读性更好了?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/597361.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简单罗列一下jdk常见的垃圾收集器

1. Serial Collector 类型:单线程收集器。工作模式:使用标记-压缩算法进行老年代的垃圾收集,标记-复制算法进行年轻代的垃圾收集。特点:简单高效,适用于单核处理器或小型堆内存。在进行垃圾收集时,会暂停所…

nginx日志目录详解

Nginx 默认会打印访问日志(access log)和错误日志(error log)。这些日志对于监控和调试网站非常有用。以下是关于如何配置和查看 Nginx 日志的一些基本信息: 配置 Nginx 日志 访问日志(Access Log&#xf…

宝塔部署nuxt3项目问题解决

使用宝塔部署nuxt3项目一直没成功,网站502,要不就是资源加载不出来 测试使用宝塔版本8.0.4 添加node项目方式失败,项目更目录设置到server,无法设置运行目录为public, 导致网站资源加载不出来,设置到.output目录,会提…

继电器组开发控制

也是通过树莓派IO口的控制来实现继电器组的开发 继电器组有四根信号线,2根电源线。 通过gpio readall 查看树莓派各个端口的信息选择26 27 28 29 作为信号端口 编程可能会遇到的一些问题 1、通过键盘输入指令的时候,如果用scanf 会有bug,导…

JavaScript高级程序设计读书记录(一):语言基础,语法,变量,数据类型

1. 语法 很大程度上借鉴了 C 语言和其他类 C 语言,如 Java 和 Perl. 1.1 区分大小写 1.2 标识符 第一个字符必须是一个字母、下划线(_)或美元符号($); 剩下的其他字符可以是字母、下划线、美元符号或数…

排除启动类故障----三大实验

目录 一、模拟破坏mbr和分区表然后修复 二、修复grub引导故障 三、遗忘root用户密码 一、模拟破坏mbr和分区表然后修复 1、mbr处于第一块磁盘的第一个物理扇区,总共512个字节,前446个字节是grub程序,后面64个字节是分区表 2、故障原因&a…

Linux 进程(九) 进程等待

子进程退出,父进程如果不管不顾,就可能造成‘僵尸进程’的问题,进而造成内存泄漏,所以父进程回收子进程是必然要做的。 另外,进程一旦变成僵尸状态,那就刀枪不入,“杀人不眨眼”的kill …

JS新手入门笔记整理:JS引入方式

JavaScript&#xff0c;简称JS。是一种嵌入到HTML页面中的编程语言&#xff0c;由浏览器一边解释一边执行&#xff0c;控制着网页的行为。 引入方式 外部JavaScript 语法 <head><!--1.在head中引入--><script src”index.js”></script> </head&g…

googlecode.log4jdbc慢sql日志,格式化sql

前言 无论使用原生JDBC、mybatis还是hibernate&#xff0c;使用log4j等日志框架可以看到生成的SQL&#xff0c;但是占位符和参数总是分开打印的&#xff0c;不便于分析&#xff0c;显示如下的效果: googlecode Log4jdbc 是一个开源 SQL 日志组件&#xff0c;它使用代理模式实…

day06、SQL语言之概述

SQl 语言之概述 6.1 SQL语言概述6.2 SQL语言之DDL定义数据库6.3 SQL语言之DML操纵数据库 6.1 SQL语言概述 6.2 SQL语言之DDL定义数据库 6.3 SQL语言之DML操纵数据库

mac m1 goland调试模式踩坑记录

背景&#xff1a;在使用 m1 芯片的 mac &#xff0c;进行 go 项目开发时&#xff0c;发现 debug 模式无法正常调试。 版本环境 go: 1.20.1 goland: 2021.1.3 无法使用调试模式 mac m1 环境下启动 goland 后&#xff0c;发现无法正常使用 debug 模式&#xff0c;接口请求后会…

2024.1.4

今天学了些什么呢&#xff1f;回忆下&#xff1a;主要搞了一下 指针的进阶&#xff0c;指针数组和数组指针&#xff0c;这大抵是相当抽象的东西&#xff0c;确实很难学啊&#xff0c;绕来绕去的&#xff0c;但是不必多言——为什么要攀登珠穆朗玛峰&#xff1f;因为它就在那儿&…

感染了后缀为.360勒索病毒如何应对?数据能够恢复吗?

引言&#xff1a; 随着科技的进步&#xff0c;网络犯罪的威胁也逐渐演变&#xff0c;.360勒索病毒便是其中一种具有破坏性的恶意软件。本文将深入剖析.360勒索病毒的特征、传播途径&#xff0c;以及在数据遭到加密后的恢复方法&#xff0c;并提供一些建议来有效预防这一威胁。…

BLE Mesh蓝牙组网技术详细解析之Foundation Model Layer基础模型层(七)

目录 一、什么是BLE Mesh Foundation Model Layer基础模型层&#xff1f; 二、模型 2.1 配置模型 2.2 健康模型 三、状态 3.1 Composition Data 四、资料获取 一、什么是BLE Mesh Foundation Model Layer基础模型层&#xff1f; BLE Mesh Foundation model Layer是蓝牙…

redis服务迁移数据工具--RDM

一、背景&#xff1a; 在日常的运维工作经常遇见各种数据迁移工作&#xff0c;例如mysql数据库迁移、redis数据库迁移、minio数据迁移等等工作。这里介绍一下redis数据库的迁移过程。 二、迁移思路&#xff1a; redis服务/集群的数据迁移思路是需要新建一个配置、密码一样的re…

【Leetcode】2487. 从链表中移除节点

文章目录 题目思路代码 题目 2487. 从链表中移除节点 思路 1、递归移除节点&#xff1a; 如果头节点为空&#xff0c;直接返回空。递归调用函数处理下一个节点 head->next。在递归返回后&#xff0c;判断当前节点的值是否小于之前记录的最大值 maxVal。如果小于 maxVal…

洛谷p1829(莫比乌斯反演)

思路&#xff1a; 代码&#xff1a; #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std; const double eps 1e-8; const int N 1e710; const long long mod 20101009…

【鸿蒙】安装DevEco Studio运行HarmonyOS第一个APP(小白必看)

文章目录 前言一、DevEco Studio是什么&#xff1f;二、DevEco Studio安装运行1. 下载DevEco Studio2. 安装DevEco Studio3. 启动DevEco Studio4. 运行APP5. 修改代码 三、DevEco Studio调试注意事项总结 前言 鸿蒙OS是华为公司开发的一款基于微内核、耗时10年、4000多名研发人…

MySQL检索距离当前最近的7个小时内,靠近每个时间点数据信息

MySQL检索距离当前最近的7个小时内&#xff0c;靠近每个时间点数据信息 如果你想在最近7个小时内找到每个时间点最接近的数据&#xff0c;即使某些时间点没有数据&#xff0c;你可以使用子查询和窗口函数。以下是一个示例查询&#xff1a; sqlCopy codeSELECTt.time_point,CO…

集群渲染是?渲染农场是?两者与云渲染关联是什么

在数字化浪潮不断推进的当下&#xff0c;渲染技术在多个行业中发挥着至关重要的作用&#xff0c;尤其体现在电影制作、建筑可视化以及电子游戏开发等领域。在众多渲染技术中&#xff0c;集群渲染、渲染农场以及云渲染特别受到业界的重视。本文旨在阐述这些概念的含义以及它们之…