shell腳本批量ssh登陸主機並執行命令
今天在客戶現場遇到了這個問題,客戶沒有管理工具,無法批量登陸主機下發命令,幾個個C段啊,讓我一個一個登陸,。。。。。。。。。。。。。。。。。。
所以寫了個shell腳本,批量使用用戶名密碼方式登陸Linux主機,執行命令,並判斷是否執行成功。
功能:
- 讀取IP地址文件,循環登陸主機執行命令,保存返回結果。
腳本已經上傳到github https://github.com/b4zinga/UsefulScripts/blob/master/remote-exec.sh
#!/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
