linux批量执行工具omnitty安装及使用

【自取】最近整理的,有需要可以领取学习:

在生产环境中,可能会有多台linux主机,运维人员可能会对多台主机进行同样的操作,例如:同时在多台主机上添加一个user用户或者查看所有主机的硬件信息,如果没有批量操作工具,设备少于20台还勉强可以手动操作,如果设备很多(100+)还手动操作的话······
omnitty是基于ssh的批量登陆工具,可批量登陆多台基于ssh的主机(linux等),并且使多台主机同时执行一样的命令。因此,omnitty很适合在多台主机上重复劳动。

安装环境:CentOS Linux release 7.4.1708 (Core)
安装软件:rote-0.2.8.tar.gz 、omnitty-0.3.0.tar.gz

(1)下载需要安装包和依赖包:

  • rote-0.2.8.tar.gz: 链接: https://pan.baidu.com/s/1FGItIXUolODJvg8Cj4iQ1g 提取码: gx2x
  • omnitty-0.3.0.tar.gz: 链接: https://pan.baidu.com/s/1AN2rcYjHhktIuiwd2dW0-Q 提取码: p8rb

(2)将按照包上传至linux指定文件夹下:

(3)安装rote-0.2.8:

  • tar -zxvf rote-0.2.8.tar.gz
  • cd rote-0.2.8/
  • ./configure
  • make
  • make install

(4)安装omnitty:

  • tar -zxvf omnitty-0.3.0.tar.gz
  • cd ../omnitty-0.3.0/
  • ./configure
  • make
  • make instal

(5)添加libROTE动态链接库到/etc/ld.so.conf:

安装后直接执行omnitty会报错:

  • omnitty: error while loading shared libraries: librote.so.0: cannot open shared object file: No such file or directory
  • 提示没有找到librote.so.0

解决上述问题的办法:

  • 执行:whereis librote.so.0
  • librote.so: /usr/local/lib/librote.so.0 /usr/local/lib/librote.so
  • 说明librote.so.0库已安装,路径在/usr/local/lib/
  • 在/etc/ld.so.conf文件末尾添加/usr/local/lib,保存并退出。
  • 最后执行:ldconfig

注意:安装时可能会出现的问题:
(a)如果报错”Need ncurses to compile librote”,需要安装ncurses开发包:

  • CentOS:# yum install ncurses-devel
  • ubuntu:$ apt-get install libncurses5-dev

(b)如果报错”//lib/x86_64-linux-gnu/libncurses.so.5: error adding symbols: DSO missing from command line”需要修改Makefile文件

  • 错误描述:
  • [plain] view plain copy
  • make

  • gcc -g -O2 -I/usr/local/include -Wall -DOMNITTY_VERSION=\”0.3.0\” -o omnitty minibuf.o machine.o main.o machmgr.o help.o menu.o curutil.o -L/usr/local/lib -lrote
  • /usr/bin/ld: help.o: undefined reference to symbol ‘delwin@@NCURSES_5.0.19991023’
  • collect2: error: ld returned 1 exit status
  • Makefile:18: recipe for target ‘omnitty’ failed
  • make: *** [omnitty] Error 1
  • 更正Makefile文件:
  • [plain] view plain copy
  • omnitty: $(objects)
  • $(CC) $(CFLAGS) -o omnitty $(objects) $(LDFLAGS) $(LIBS) -lncurses -ltinfo

(1)执行omnitty,出现omnitty工具界面:

相关指令:

  • F1:操作菜单
  • F2/3:向上/向下选择主机
  • F4:标记/取消标记主机
  • F5:添加主机
  • F6:删除主机
  • F7:广播

F1菜单详细指令:

  • r:对主机重命名(只是为了标记清楚,并不是更改hostname)
  • t:标记所有主机(即选中所有主机)
  • q:退出程序

(2)添加主机/主机列表:

添加单个主机:

  • 按F5,出现Add:提示符,然后输入IP地址;例如:F5—>”Add:172.18.8.7″。(其实没啥意义)

添加主机列表:

  • 在指定目录下新建一个文件,在文件中添加多个主机列表,然后如上面使用F5添加;
  • 例如:文件路径及名字为/root/test,然后按F5—>”Add:@/root/test”

(3)简单的批量操作使用:

如果主机比较多,或者懒得一次次输入的时候,可以选择下面的方式:
①把主机地址写到一个文件中,如在/root下创建一个文件server,添加如下内容:
root@192.168.1.60
root@192.168.1.61
②启动omnitty;
③F5,然后在add提示符后输入:@/root/server;
④F1+t选中所有机器,或使用F2/F3加F4单独选中个别机器;
⑤F7 切换到MULTICAST MODE模式,此时随意在某一台上敲命令都可以,列表中的主机执行动作将会一模一样;
⑥输入密码(同步向所有机器输入密码,如果密码不同,则需要单独来);
⑦F2/F3切换机器查看每台机器的运行结果。

Original: https://www.cnblogs.com/wangcp-2014/p/15291198.html
Author: 飘飘雪
Title: linux批量执行工具omnitty安装及使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/8743/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Ubuntu远程连接MySQL(connection refused)解决方法

    一、判断ubuntu是否开启防火墙 <span class="hljs-built_in">sudo ufw status</span>…

    Linux 2022年8月26日
    0720
  • 我是如何使用git的

    安装 首先需要安装 msysgit, 下载地址:http://msysgit.github.io/ msysgit提供了 Git Bash命令行工具和 Git GUI,前者提供了类…

    2022年8月30日
    0390
  • Linux记录-ssh无密码执行脚本

    1.配置sudo无密码登陆 bash;gutter:true; vim /etc/sudoers.d/app app ALL=(ALL) ALL app ALL=(ALL) NOP…

    Linux 2022年8月24日
    0410
  • Linux编译安装、压缩打包与定时任务服务

    一、编译安装 即使用源代码编译安装的方式,编译打包软件。特点: 可以自定制软件; 可以按需构建软件; 编译安装案例 1、下载源代码包(这里以Nginx软件包源代码为例) wget …

    Linux 2022年9月10日
    0180
  • Xshell中文乱码问题

    先查看当前使用的语言: echo $LANG 查看系统的语言安装包: locale 如果没有中文安装包(包含zh_CN字样),需要网络或者自己上传安装包,安装 有了中文语言安装包后…

    Linux 2022年9月14日
    0280
  • Git 修改远端仓库地址

    方法有三种:1.修改命令git remote set-url origin [url] 例如:git remote set-url origin gitlab@gitlab.chu…

    Linux 2022年8月30日
    0270
  • mac终端 ssh连接linux服务器 和 传输文件

    ssh root@服务器地址 ssh root@122.51.237.139 然后会回答问题,输入yes Are you sure you want to continue con…

    Linux 2022年8月11日
    0280
  • 使用Shell创建GitHub仓库

    Github的代码仓库分为2种类型: 用户自己的代码仓库 组织的代码仓库 下面就使用Shell脚本创建这2种类型的代码仓库,脚本如下 创建用户自己的代码仓库 #!/bin/bash…

    Linux 2022年8月30日
    0260
  • Redis实现延迟队列方法介绍

    延迟队列,顾名思义它是一种带有延迟功能的消息队列。那么,是在什么场景下我才需要这样的队列呢? [En] Delay queue, as its name implies, is a…

    Linux 2022年9月14日
    0210
  • Linux内核链表——看这一篇文章就够了

    本文从最基本的内核链表出发,引出初始化INIT_LIST_HEAD函数,然后介绍list_add,通过改变链表位置的问题引出list_for_each函数,然后为了获取容器结构地址…

    2022年8月24日
    0410
  • Linux atop 监控系统状态

    p模式:进程状态模式,同一个名称的进程显示一列,根据进程名进行分组显示 NPROCS:相同名称的进程数量 其它的参数上面已经有列出 v模式:线程状态模式 u模式:用户模式 根据用户…

    2022年8月24日
    0300
  • Git分支操作方法

    Git仓库介绍 Git仓库分为本地仓库和远程仓库,及时是从远程clone下来的仓库,它在本地也是独立的,它包含了你所clone分支的所有源代码和历史记录,可以方便的在本地进行操作。…

    Linux 2022年8月30日
    0210
  • IDEA使用Git出现push to origin/master was rejected错误解决方案

    在IDEA中配置码云的URL,如下图 切换到自己项目所在的目录,右键选择GIT BASH Here 在terminl窗口中依次输入命令: git pull git pull ori…

    Linux 2022年8月30日
    0270
  • shell之文件路径截取

    最近写脚本,需要对脚本中函数传递的路径参数进行截取,发现了以下比较好用的方法,记录下: [En] Recently, when you write a script, you ne…

    Linux 2022年9月14日
    0240
  • 图解 Git

    https://juejin.im/entry/5917c463da2f60005de84195 怀有希望!! Original: https://www.cnblogs.com/…

    Linux 2022年8月30日
    0320
  • ubuntu apt 查找包的依赖包并下载

    首先,找包。找到依赖的包用apt-cache depends packname来获取。其次,下载。用apt-get install dependpackname –reinstal…

    Linux 2022年8月26日
    0300
  • linux函数深入探索——open函数打开文件是否将文件内容加载到内存空间

    转自:https://blog.csdn.net/qq_17019203/article/details/85051627 问题:open(2)函数打开文件是否将文件内容加载到内存…

    Linux 2022年8月11日
    0440
  • 以Docker方式安装Redis集群

    以 Redis-6.0.6 为例,先从仓库将镜像拉下来: docker pull redis:6.0.6 Redis 的配置文件和数据文件不能放在镜像中,这里选择容器中的目录和宿主…

    Linux 2022年9月14日
    0370
  • linux 常用命令

    Linux返回上一级目录的命令 cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd或cd ~ 返回home目录 cd – 目录名 返回指定目录 Linu…

    Linux 2022年8月24日
    0260
  • linux字符处理命令wc cat grep sed

    1)wc: -c 统计字节数。 -l 统计行数。 1)执行命令wc -c test.txt后,结果如下图所示 2)执行命令wc -l test.txt后,结果如下图所示: eg:统…

    2022年8月20日
    0280
  • Linux文本处理相关命令

    一、文本处理命令 Linux sort命令用于将文本文件内容加以排序。 sort 可针对文本文件的内容,以行为单位来排序。 语法格式如下: sort [参数]…[文件] 相关参…

    Linux 2022年9月10日
    0200
  • Linux—部署Django项目

    前言 这几天工作不忙,偷偷写了一个登录界面,想部署到服务器上,今天悄悄介绍一下如何在服务器上部署界面 [En] These days work is not busy, secre…

    2022年8月26日
    0390
  • Redis核心技术与实战:学习总结目录

    1 Redis学习路径 在《Redis核心技术与实战》课程的学习中,我经常看到一位课代表的发言,他就是Kaito,他总结了一份 Redis学习路径脑图(建议收藏),将Redis的知…

    Linux 2022年9月14日
    0320
  • linux安装expect

    介绍expect是一个用来处理交互的命令。借助expect,我们可以将交互过程写在一个脚本上,使之自动化完成。形象的说,ssh登录,ftp登录等都符合交互的定义。 expect是交…

    Linux 2022年8月24日
    0270
  • 解决 Ubuntu 断电后无法启动

    本文参考:https://blog.csdn.net/huyongfeijoe/article/details/77119809 根据提示,断电后 /dev/mapper/ubun…

    Linux 2022年8月26日
    0270
  • MobaXterm左侧没有文件列表,没有SCP,不显示文件夹问题处理

    一般情况是你设置的session属性问题,具体做法是右键你的session,选edit session,SSH 如下图: 选择 SFTP protocol 并勾选 Follow S…

    Linux 2022年9月10日
    0270

发表回复

登录后才能评论
免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部