Pouvez-vous scp
un fichier à plusieurs emplacements dans la même commande?
Par exemple:
scp file.txt [email protected]:, [email protected]:
Ou serait-il plus pratique de créer un script bash qui contient déjà tous les hôtes et qui prendrait simplement un fichier comme argument?
linux
file-transfer
scp
Andrew
la source
la source
for
boucle enwhile read dest; do
, elle lira à partir de l'entrée standard. Mettez-le dans un script et alimentez-ledestfile.txt
(par exemple,./thescript.sh <destfile.txt
).Ressemble à un travail pour parallel-scp (n) (t) - cela implémente un ensemble de commandes qui permettent aux commandes scp d'être exécutées sur plusieurs systèmes à la fois. Il permettra la copie de fichiers en parallèle sur un ensemble de machines.
la source
la source
Une autre alternative (et une ligne) serait d'utiliser à la place pdsh pour se connecter à chaque nœud cible et déclencher un get à partir de là:
Bien sûr, cela nécessite une information supplémentaire (l'hôte local) et différents droits d'utilisateur, mais vous évitez de boucler en bash et d'utiliser l'indirection pour lire le fichier.
la source
Voici une autre option, avec un script shell d'une ligne.
Il utilise deux fichiers, un pour la boucle et un pour la liste d'hôtes du serveur. Il lit
$1
le premier paramètre de la CLI comme nom de fichier pour SCPcscp.sh
hosts.txt
Usage
Copiez le fichier sur plusieurs hôtes:
la source
Si vous avez une convention de dénomination cohérente pour plusieurs serveurs, vous pouvez faire quelque chose de bien comme:
la source