zoukankan      html  css  js  c++  java
  • linux批量执行工具omnitty安装及使用

    一、omnitty概述:

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

    二、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 plaincopy
       
      1. # make  
      2. 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  
      3. /usr/bin/ld: help.o: undefined reference to symbol 'delwin@@NCURSES_5.0.19991023'  
      4. //lib/x86_64-linux-gnu/libncurses.so.5: error adding symbols: DSO missing from command line  
      5. collect2: error: ld returned 1 exit status  
      6. Makefile:18: recipe for target 'omnitty' failed  
      7. make: *** [omnitty] Error 1  
    • 更正Makefile文件:
    • [plain] view plaincopy
       
      1. omnitty: $(objects)  
      2. $(CC) $(CFLAGS)  -o omnitty $(objects) $(LDFLAGS) $(LIBS) -lncurses  -ltinfo  

    三、omnitty使用:

    (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切换机器查看每台机器的运行结果。

  • 相关阅读:
    iOS 9.0中UIAlertController的用法
    AFN网络状态的时时监控以及网络的判断、
    IOS中货币高精度要求使用NSDecialNumber、
    各种宏定义
    iOS开发中那些高效常用的宏
    iOS应用日志:开始编写日志组件与异常日志
    UITextField的placeholder文字的位置,颜色等的自定义设置
    iOS
    关于duplicate symbol _main in的解决办法
    ios即时通讯客户端开发之-mac上搭建openfire服务器
  • 原文地址:https://www.cnblogs.com/wangcp-2014/p/15291198.html
Copyright © 2011-2022 走看看