linux批量執行工具omnitty使用方法


一、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 回車即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM