Mein Skript vom Quellserver versucht, per SSH auf mehrere Server zuzugreifen und den anwendungsspezifischen Befehl auszuführen, was ich anders als bei Betriebssystembefehlen (wie cat, chmod usw.) sagen kann. Ich erhalte den Fehler „Befehl nicht gefunden“. Unten ist das Skript.
for host in $(cat hosts_list.txt)
do
ssh $host chk_auto_up > "cmd_output.txt"
done
Kann mir jemand helfen, was ich in das Skript aufnehmen muss, um den Befehl zu identifizieren, auszuführen und die Ausgabe in die Datei zu schreiben?
Ich habe die Fehlermeldung, dass der Befehl nicht gefunden wurde
Antwort1
Sie bearbeiten einfach die Zeile:
ssh $host /path/of/chk_auto_up > "cmd_output.txt"
Definieren Sie den absoluten Pfad des Befehls.
Antwort2
Ich habe eine Antwort gefunden, wie man einen externen Befehl remote über SSH ausführt.
for host in $(cat /***/thishost/**/username/hosts_list.txt)
do
ssh "$host"
. /**/***/*****/*****/******.${HOST}
chk_auto_up >> "/****/thishost/***/*****/cmd_output.txt"
exit
done
Einzelheiten:
hosts_list.txt
--> Ich habe eine Liste von Servern, bei denen ich mich per SSH anmelden kannssh "$host"
--> Die SSH-Anmeldung erfolgt auf dem ersten Server.. /**/***/*****/*****/******.${HOST}
--> Der Binärpfad des externen Befehls ist hier verfügbarchk_auto_up >> "/****/thishost/***/*****/cmd_output.txt"
--> Führen Sie den Befehl aus und schreiben Sie die Ausgabe auf den Quellserver.