批量處理linux集羣系統--免交互式sshpass的安裝簡介與使用

我們在Linux集羣系統使用中,偶爾會碰到需要批量處理每個系統的情況,比如ssh的登陸運行命令,或者scp的文件複製,這些只需要在shell腳本批量運行各個IP即可,但ssh,scp需要交互式輸密碼,也就是說你仍然需要一個個的輸密碼,過於機械與麻煩

爲了解決這種情況,常用的有三種方法

  1. 各個IP配置key文件,達到網絡共享服務器之間免密操作
  2. 用sshpass命令,免交互式輸密碼
  3. 用expect命令,該命令比sshpass功能更加強大,但使用起來稍顯複雜

這裏我們詳細介紹下sshpass命令的使用

安裝

該命令非系統內置命令,需要我們自行安裝使用

  • 在線安裝
yum install sshpass
  • 離線安裝

免費提供一個安裝包,不用感謝,十萬訪問量送禮物,哈哈  鏈接:https://pan.baidu.com/s/1lOYetlVlgYGd_6Ye7tm1ZA 
提取碼:2x8j 

下載安裝好,把該文件拷貝到服務器中,解壓,安裝,測試使用,命令如下

# xxxx爲文件名
tar -xvf xxxx.tar.gz
cd xxxx
./configure
make
make install

輸入sshpass -h  測試使用是否成功

使用

sshpass -p 'password'  輸入密碼後即可後跟命令,如下,不用再另外單輸密碼,但存在泄露密碼風險

sshpass -p 'password' ssh [email protected]

腳本測試

# scp 也可以類似下面使用
iplist="1.1.1.1 2.2.2.2 3.3.3.3"
for ip1 in ${iplist};do
ssh -p 'password' ssh root@${ip1} << EOF
cd /u01/test
touch test.txt
exit
EOF
done


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章