Können Sie scp
eine Datei an mehrere Speicherorte im selben Befehl senden?
Beispielsweise:
scp file.txt [email protected]:, [email protected]:
Oder wäre es praktischer, ein Bash-Skript zu erstellen, in dem alle Hosts bereits enthalten sind und für das lediglich eine Datei als Argument verwendet wird?
linux
file-transfer
scp
Andrew
quelle
quelle
for
-loop in ändernwhile read dest; do
, wird von der Standardeingabe gelesen. Setze es in ein Skript und fütteredestfile.txt
es damit (zB./thescript.sh <destfile.txt
).Sieht aus wie ein Job für parallel-scp (n) (t) - implementiert eine Reihe von Befehlen, mit denen scp-Befehle auf mehreren Systemen gleichzeitig ausgeführt werden können. Es ermöglicht das Kopieren von Dateien parallel zu einer Reihe von Maschinen.
quelle
quelle
Eine andere Alternative (und ein Einzeiler) wäre, stattdessen pdsh zu verwenden, um eine Verbindung zu jedem Zielknoten herzustellen und einen Abruf von dort auszulösen:
Dies erfordert natürlich eine weitere Information (den lokalen Host) und unterschiedliche Benutzerrechte, aber Sie vermeiden, Bash einzulesen und die Datei durch Indirektion zu lesen.
quelle
Hier ist eine weitere Option mit einem einzeiligen Shell-Skript.
Es werden zwei Dateien verwendet, eine für die Schleife und eine für die Server-Host-Liste. Es liest
$1
nach dem ersten Parameter von der CLI als Dateiname zu SCPcscp.sh
hosts.txt
Verwendung
Datei auf mehrere Hosts kopieren:
quelle
Wenn Sie eine einheitliche Namenskonvention für mehrere Server verwenden, können Sie Folgendes tun:
quelle