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
- #make
- gcc-g-O2-I/usr/local/include-Wall-DOMNITTY_VERSION=\"0.3.0\"-oomnittyminibuf.omachine.omain.omachmgr.ohelp.omenu.ocurutil.o-L/usr/local/lib-lrote
- /usr/bin/ld:help.o:undefinedreferencetosymbol'delwin@@NCURSES_5.0.19991023'
- //lib/x86_64-linux-gnu/libncurses.so.5:erroraddingsymbols:DSOmissingfromcommandline
- collect2:error:ldreturned1exitstatus
- Makefile:18:recipefortarget'omnitty'failed
- make:***[omnitty]Error1
- 更正Makefile檔案:
-
[plain]view plaincopy
- omnitty:$(objects)
- $(CC)$(CFLAGS)-oomnitty$(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,新增如下內容:
[email protected]
[email protected]
②啟動omnitty;
③F5,然後在add提示符後輸入:@/root/server;
④F1+t選中所有機器,或使用F2/F3加F4單獨選中個別機器;
⑤F7 切換到MULTICAST MODE模式,此時隨意在某一臺上敲命令都可以,列表中的主機執行動作將會一模一樣;
⑥輸入密碼(同步向所有機器輸入密碼,如果密碼不同,則需要單獨來);
⑦F2/F3切換機器檢視每臺機器的執行結果。