GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verwenden Sie scp, um eine Datei auf verschiedene Server zu kopieren

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.


Linux
  1. Wie kopiert man eine Datei von einem Remote-Server auf einen lokalen Computer?

  2. Verwenden Sie Cloud Servers-Tags

  3. Verwenden Sie CloudFlare mit Rackspace

  4. Ist es möglich, / in einem Dateinamen zu verwenden?

  5. So kopieren Sie eine Datei von einem Vagrant-Computer auf localhost

Cp-Befehl in Linux (Dateien kopieren)

Linux-Hostdatei:Wie wird sie bearbeitet und verwendet?

So verwenden Sie den SCP-Befehl unter Linux

Verwenden Sie die SSH-Konfigurationsdatei, um SSH-Verbindungen zu verschiedenen Remote-Servern zu verwalten

So verwenden Sie Rsync zum Kopieren/Synchronisieren von Dateien zwischen Servern

Wie verwende ich gzip unter Linux?