Führen Sie einen Befehl auf einem Host aus einer Datei mit einem Benutzer aus einer anderen Datei aus

Führen Sie einen Befehl auf einem Host aus einer Datei mit einem Benutzer aus einer anderen Datei aus

Ich versuche, ein Skript zu erstellen, das sich bei jedem Server aus einer Liste mit einem Benutzer aus einer anderen Liste anmeldet und einen Befehl ausführt. Wie kann ich das tun, indem ich den ersten Host aus der Datei nehme und mich mit dem ersten Benutzer aus einer anderen Datei anmelde, den zweiten Host aus der Datei nehme und mich mit dem zweiten Benutzer aus der Datei anmelde und so weiter?

Das habe ich bisher bekommen:

#!/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

Aber hier wird der Befehl für den ersten Host mit allen Benutzern aus der Benutzerliste ausgeführt.

Antwort1

wenn in beiden Dateien die gleiche Anzahl Zeilen vorhanden ist

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

Sie können pastezuerst den Befehl ausprobieren, um zu überprüfen, ob der Host den richtigen Benutzer erhält.

verwandte Informationen