Es gibt verschiedene Tools, die Dateien zu mehreren Hosts (mit gleichzeitigen Verbindungen) scp können, wie pssh und kanif. In Bezug auf Passwörter würde ich vorschlagen, die Agentenweiterleitung zu verwenden. Auf diese Weise können Sie den Schlüssel auf Ihrem lokalen Computer behalten, ihn jedoch verwenden, wenn Sie SSH-Verbindungen von einem anderen Host initiieren. Andernfalls die --askpass
Option zum parallel-scp
Befehl von pssh fordert zur Eingabe eines Passworts auf, das für jeden Host verwendet werden soll.
Wenn Sie hierfür kein Tool installieren können, richten Sie die Agentenweiterleitung ein (indem Sie den -A
Option zu ssh
wenn Sie sich mit dem Computer verbinden, auf dem Sie dies tun) und führen Sie dann scp
aus in einer Schleife wie folgt:
for HOST in server1 server2 server3; do
scp somefile $HOST:~/somedir/
done
Versuchen Sie dies mit einem Erwartungsskript, z. B.
#!/bin/bash
HOSTS="h1.lan h2.lan h3.lan"
read -p "Password: " PASSWORD
for HOST in $HOSTS
do
expect -c "
spawn /usr/bin/scp file [email protected]$HOST:/destination_path/
expect {
"*password:*" { send $PASSWORD\r;interact }
}
exit
"
done
Das Obige sollte ziemlich einfach an Ihre Anforderungen angepasst werden können.