別のファイルのユーザーを使用して、ファイルからホスト上でコマンドを実行する

別のファイルのユーザーを使用して、ファイルからホスト上でコマンドを実行する

あるリストから別のリストのユーザーを使用して各サーバーにログインし、コマンドを実行するスクリプトを作成しようとしています。ファイルから最初のホストを取得して別のファイルの最初のユーザーでログインし、ファイルから 2 番目のホストを取得してファイルから 2 番目のユーザーでログインするなど、これを実行するにはどうすればよいですか?

これまでに得たものは次のとおりです:

#!/bin/bash
for host in `cat hosts.txt`
do
for user in `cat users.txt` ;
do
ssh -t Natasha@$host << EOF ;
/usr/local/bin/sudo -i -u $user w ;
EOF
done
done

しかし、これはユーザー リストのすべてのユーザーを使用して最初のホストに対してコマンドを実行します。

答え1

両方のファイルに同じ行数がある場合

paste hosts.txt users.txt |
while read host user
do
   ...
done

pasteまずコマンドを試して、ホストが適切なユーザーを取得しているかどうかを確認できます。

関連情報