GNU/Linux >> Tutoriels Linux >  >> Linux

Utiliser scp pour copier un fichier sur différents serveurs

Il existe divers outils qui peuvent scp des fichiers sur plusieurs hôtes (avec des connexions simultanées), comme pssh et kanif. En termes de mots de passe, je suggérerais d'utiliser le transfert d'agent. Cela vous permet de conserver la clé sur votre ordinateur local, mais de l'utiliser lors de l'établissement de connexions SSH à partir d'un autre hôte. Sinon, le --askpass option au parallel-scp La commande de pssh demande un mot de passe à utiliser pour chaque hôte.

Si vous ne pouvez pas installer d'outil pour ce faire, configurez le transfert d'agent (en ajoutant le -A option à ssh lors de la connexion à la machine sur laquelle vous faites cela), puis exécutez scp dans une boucle comme ceci :

for HOST in server1 server2 server3; do
    scp somefile $HOST:~/somedir/
done

Essayez de le faire avec un script attendu, par exemple

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

Ce qui précède devrait être assez simple pour s'adapter à vos besoins.


Linux
  1. Comment utiliser le tunneling SSH pour accéder aux serveurs restreints

  2. Comment copier un fichier d'un serveur distant vers une machine locale ?

  3. Est-il possible d'utiliser / dans un nom de fichier ?

  4. Comment copier un fichier d'une machine Vagrant vers localhost

  5. Comment copier un fichier sans utiliser scp dans une session ssh ?

Commande Cp sous Linux (Copier des fichiers)

Fichier hôte Linux :comment le modifier et l'utiliser ?

Comment utiliser la commande SCP sous Linux

Utiliser le fichier de configuration SSH pour gérer les connexions SSH à divers serveurs distants

Comment utiliser Rsync pour copier/synchroniser des fichiers entre des serveurs

Comment utiliser gzip sous Linux ?