我有下面的文件与fqdn的服务器和用户的服务器在同一行. cat servers.txt
server1 user1 \n
server2 user2 \n
server3 user3 \n
我正在写一个shell脚本,我可以一次使用一个服务器来执行ssh,并在那里执行一些命令,然后移动到下一个服务器。例如,ssh到server1,sudo到user1,然后做这些事情,然后移动到server2。所以我写了下面,并试图调整,但没有找到解决办法。它不工作。请帮助。
ROOT_PATH=/home
SERVERS_FILE=servers.txt
while IFS= read -r line; do
server=`cut -d' ' -f1 $line`
user=`cut -d' ' -f2 $line`
echo $server ::: $user
echo "grep -rw lookeupword $ROOT_PATH/$user" | ssh $server "sudo -iu $user bash"
done <<< "$SERVERS_FILE"
2条答案
按热度按时间xwmevbvl1#
这样就行了
gfttwv5a2#
如果你不介意使用一个一个班轮这里是一个简单的
首先创建
.ssh/config
文件,并为每个Host
设置配置。下面是我的(部分)所以ssh(ing)到docker,nginx,dw没有密码是可能的(使用公钥/私钥)。
第二个循环遍历您拥有或想要运行命令的
Host
:下面是一个简单屏幕截图: