shell腳本批量ssh登錄主機並執行命令
今天在客戶現場遇到了這個問題,客戶沒有管理工具,沒法批量登錄主機下發命令,幾個個C段啊,讓我一個一個登錄,。。。。。。。。。。。。。。。。。。git
因此寫了個shell腳本,批量使用用戶名密碼方式登錄Linux主機,執行命令,並判斷是否執行成功。github
功能:shell
- 讀取IP地址文件,循環登錄主機執行命令,保存返回結果。
腳本已經上傳到github https://github.com/b4zinga/UsefulScripts/blob/master/remote-exec.shssh
#!/bin/sh # Date : 2018-09-14 14:56:09 # Author: b4zinga # Email : b4zinga@outlook.com # Func : 批量登錄Linux主機並執行命令 username="root" password="password" port="22" timeout=3 cmd="id > /tmp/b4" login(){ echo "" echo "-------------------------------------------------------- " echo "username: $username password: $password port: $port timeout=$timeout" echo "command: $cmd" echo "Remote exec command script" echo "--------------------------------------------------------" echo "" for host in `cat ip.txt`; do result="" result=`sshpass -p "$password" ssh -p $port -o StrictHostKeyChecking=no -o ConnectTimeout=$timeout $username@$host $cmd` echo $host >> result.txt echo $result >> result.txt done echo "" } login ls