一、omnitty概述
在生产环境中,可能会有多台linux主机。运维人员可能会对多台主机进行同样的操作,例:同时在多台主机上添加一个user或查看所有主机的硬件信息,如果没有批量操作工具,设备少于20台还勉强可以手动操作,当设备很多(100+)还手动操作的话······

Omnitty是基于ssh的批量登陆工具,可批量登陆多台基于ssh的主机(linux等),并且使多台主机同时执行一样的命令。在多台主机重复劳动很适合。

官方地址:http://omnitty.sourceforge.net/
在官方地址下载libROTE Library Home Page和omnitty,其中libROTE Library Home Page是omnitty的安装需要的动态链接库文件(librote.so.0)。

本人下载到的版本:
rote-0.2.8.tar.gz
omnitty-0.3.0.tar.gz
编译安装正常。

二、安装omnitty
1、 tar -zxvf rote-0.2.8.tar.gz
cd rote-0.2.8/
./configure
make
make install

2、tar -zxvf omnitty-0.3.0.tar.gz
cd ../omnitty-0.3.0/
./configure
make
make install

3、添加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
cat /etc/ld.so.conf
/usr/X11R6/lib64/Xaw3d
/usr/X11R6/lib64
/usr/lib64/Xaw3d
/usr/X11R6/lib/Xaw3d
/usr/X11R6/lib
/usr/lib/Xaw3d
/usr/x86_64-suse-linux/lib
/usr/local/lib
/opt/kde3/lib
/lib64
/lib
/usr/lib64
/usr/lib
/usr/local/lib64
/opt/kde3/lib64
include /etc/ld.so.conf.d/*.conf

在/etc/ld.so.conf文件末尾添加/usr/local/lib,保存并推出。
执行:ldconfig

提示:
etc/ld.so.conf记录了编译时使用的动态链接库的路径。默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件。如果安
装了某些库文件例librote.so.0,需要在etc/ld.so.conf添加库文件的路径,这样 ldd 才能找到这个库。

ldconfig位于/sbin下,是root执行的程序。它的作用就是将/etc/ld.so.conf列出的路径下的库文件缓存到/etc
/ld.so.cache
以供使用。因此当安装完一些库文件,(例如刚安装好glib),或者修改ld.so.conf增加新的库路径后,需要运行一下/sbin
/ldconfig使所有的库文件都被缓存到ld.so.cache中,如果没做,即使库文件明明就在/usr/lib下的,也是不会被使用的,结果编译
过程中抱错,缺少xxx库,去查看却发现明明就存在。

注:如果报错”Need ncurses to compile librote“,需要安装ncurses开发包,

CentOS

# yum install ncurses-devel

ubuntu

$ apt-get install libncurses5-dev

将rote的so文件加入系统查找路径里(不然omnitty运行时会提示找不到so)

# whereis librote.so.0

librote.so: /usr/local/lib/librote.so.0 /usr/local/lib/librote.so

# vim /etc/ld.so.conf.d/omnitty-x86_64.conf

添加如下内容:

/usr/local/lib

# ldconfig

三、omnitty使用

注意:omnitty是基于ssh的批量登陆操作程序,所以在执行操作时必须要注意ssh的用户权限,以免造成不可估量的损失。
Omnitty默认使用执行此程序的user来进行ssh登陆操作

1、创建主机列表
在装有omnitty的主机上创建一个需要批量操作的主机列表,例:
vi host
192.168.40.128
192.168.40.129
······
此列表文件每台主机的ip要以回车分隔,执行omnitty的user要有对文件的权限。

2、执行omnitty
linux-b779:~ # omnitty

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

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

添加主机:按F5,程序左下角会提示“add”,在此后面填写主机列表,
格式:@/root/host
用主机列表添加主机的方法,ssh登陆的用户是默认执行omnitty的user,不能写成user@hostlist.txt,这样是不成功的。
如果想以固定账户登陆,就不能使用主机列表的方式,而是写成类似于ssh登陆的语法:user@x.x.x.x,但是这样就失去了部分omnitty的意义,因为你得手动填写一系列的主机列表,不够智能。


输入主机列表后,按F1—t选择全部主机(选择的主机名为绿色),再按F7广播操作命令,即操作对选中的所有主机生效。执行广播命令要慎重!!!

在实际操作中可按F2/F3来选择相应的主机界面,按F4标记或取消标记一台主机,用F6来删除一台主机,根据实际情况具体应用。

#######################简单的批量操作使用######################

【如果主机比较多,或者懒得一次次输入的时候,可以选择下面的方式】

把主机地址写到一个文件中,如在/root下创建一个文件server,添加如下内容:

root@192.168.1.60

root@192.168.1.61

键入F5之后,使用@/root/server回车,即可加入列表中的所有服务器。

注:不能写成user@/root/server,这样是不成功的。

F2/F3==>上下切换待操作的服务器

F5加入server中多个服务器后,往往需要使用F2/F3切换服务器,以输入密码。

【经测试,在添加完server列表主机回车提示输密码之后,可以F1—t—F7进入广播模式,即可以同时操作列表中所有主机时,一次性输入密码即可,条件是所有主机密码相同】

F4==>当前服务器打入/取消tag

F7==>进入!!!MULTICAST MODE!!!多台输入模式,此时随意在某一台上敲命令都可以,列表中的主机执行动作将会一模一样。可以使用F2/F3切换验证。

#######################如果SSH端口不是默认端口######################

http://blogimg.chinaunix.net/blog/upfile2/090703165246.gz

下载此软件包,重命名#mv 090703165246.gz omnitty-0.3.0-patched.tar.gz

下面的安装过程与上面的一样!

在编写主机列表时:#vim /root/host

192.168.1.60

192.168.1.61 –p 222

#omnitty添加主机时命令相同

#omnitty ----F5下面输入@/root/host 回车即可

linux批量执行工具omnitty使用方法的更多相关文章

  1. 批量执行工具PSSH详解

    批量执行工具PSSH详解 pssh是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的,使用必须在各个服务器上配置好密钥认证访问. 安装pssh包 yum 安 ...

  2. linux下执行.sh文件的方法和语法

    linux下执行.sh文件的方法    .sh文件就是文本文件,如果要执行,需要使用chmod a+x xxx.sh来给可执行权限.       是bash脚本么   可以用touch test.sh ...

  3. Linux批量部署工具Expect

    既然没有遇到过,做好准备总是好的.这是自己送给自己的话,现在运维做自动话越来越多,自己就学以下,记录笔记.目前主流的有puppet.Expect.pssh等等,今天就用Expect做自动部署和日常管理 ...

  4. windows与linux下执行.class(包含main方法)

    来源:http://blog.csdn.net/hanqunfeng/article/details/4327325 一般来说,执行一个java文件采用执行jar包的方式最为方便(java -jar ...

  5. Linux批量管理工具Ansible

    Ansible-批量linux管理工具:https://github.com/ansible/ansible Ansible有如下优点: 1.轻量级,他不需要去客户端安装agent,更新时,只需要在操 ...

  6. 用linux 命令 执行ci框架的方法

    最近要跑一个数据量比较大的脚本,刚开始在浏览器页面访问发行nginx 5.4 超时, 又不想去修改nginx的连接时间,只能在服务器执行了, 执行方法:进入到ci 的根目录:#php index.ph ...

  7. 【shell脚本】通过遍历文件的一种批量执行shell命令的方法。

    在分析数据时,经常会有许多机械重复的命令带入,作为一个半路出家的程序猿,我曾经对这种工作束手无策.不像一个熟手那样举重若轻的分析,感觉自己的生信分析完全是个体力活.为了打开这样的局面,我开始学习如何批 ...

  8. Linux 批量管理工具

    pssh/pscp(Python) ansible(Python) saltstack(Python) chef puppet(Ruby) fabric(Python)

  9. linux批量匹配移动文件的方法

    需求 有需要移动的文件名清单 filename.txt filename.txt 内容如下: 15542842 1582457 1282427 1532158 4542457 1582453 6552 ...

随机推荐

  1. hdu1690 Bus System(最短路 Dijkstra)

    Problem Description Because of the huge population of China, public transportation is very important ...

  2. 学习C++——只声明忘记定义了

    #include <iostream> #include <list> #include <string> using namespace std; class E ...

  3. javascript关于原型的深刻理解

    Javascript继承机制的设计思想   作者: 阮一峰 日期: 2011年6月 5日 我一直很难理解Javascript语言的继承机制. 它没有"子类"和"父类&qu ...

  4. webservice取文件修改时间,返回1601/1/1 8:00:00

    若文件查找不到,则会返回1601/1/1 8:00:00,若能正确查找到该文件,则返回正确的修改时间.

  5. 【记录】在MAC上安装caffe

    ---恢复内容开始--- 最近尝试在MAC(OS X 10.11 El Capitan)上安装Caffe 以及Python接口遇到了一些问题但是官方安装教程上并没有提出这些问题的解决办法搜索了很久(主 ...

  6. zsh中home键失灵问题

    putty访问linux时,如果出现这个情况,可以更改配置中Connection->Data->Terminal-type-string,改为linux,再连接即可 mac下可打开终端的配 ...

  7. D题(贪心)

    D - D Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u     Descripti ...

  8. UVA 572 Oil Deposits油田(DFS求连通块)

    UVA 572     DFS(floodfill)  用DFS求连通块 Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format: ...

  9. 基于Redis的CAS服务端集群

    为了保证生产环境CAS(Central Authentication Service)认证服务的高可用,防止出现单点故障,我们需要对CAS Server进行集群部署. CAS的Ticket默认是以Ma ...

  10. CentOS 基础安装

    1. 下载了 CentOS 的最小安装版本 与 VMware,基础安装流程参考百度经验:http://jingyan.baidu.com/article/eae0782787b4c01fec54853 ...