【发布时间】:2021-06-02 17:29:11
【问题描述】:
我有以下文件,其中服务器的 fqdn 和该服务器的用户在同一行中。 猫服务器.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"
【问题讨论】:
-
请注意,每个服务器和它的用户都在一个新的行上。
-
你说的不工作是什么意思?
-
意味着当尝试从第一个变量 $server 在主机上进行 ssh 时它会给我错误。检查下面。 ROOT_PATH=/home SERVERS_FILE=servers.txt 而 IFS= 读取 -r 行; do # echo $line server=$(echo -n ${line} | awk '{print $1}') user=$(echo -n ${line} | awk '{print $2}') echo $server :: : $user echo "grep -rw findtheword $ROOT_PATH/$user" | ssh $server "sudo -iu $user bash" done
-
错误信息应该写在问题中,而不是在评论中......