Pscp - Transférer / copier des fichiers sur plusieurs serveurs Linux à l'aide d'un seul shell


L'utilitaire Pscp vous permet de transférer/copier des fichiers sur plusieurs serveurs Linux distants en utilisant un seul terminal avec une seule commande, cet outil fait partie de Pssh (Parallel SSH Tools), qui fournit des versions parallèles d'OpenSSH et d'autres outils similaires tels que:

  1. pscp – is utility for copying files in parallel to a number of hosts.
  2. prsync – is a utility for efficiently copying files to multiple hosts in parallel.
  3. pnuke – it helps to kills processes on multiple remote hosts in parallel.
  4. pslurp – it helps to copy files from multiple remote hosts to a central host in parallel.

Lorsque vous travaillez dans un environnement réseau où il y a plusieurs hôtes sur le réseau, un administrateur système peut trouver ces outils listés ci-dessus très utiles.

Dans cet article, nous examinerons quelques exemples utiles d'utilitaire Pscp pour transférer/copier des fichiers vers plusieurs hôtes Linux sur un réseau.

Pour utiliser l'outil pscp, vous devez installer l'utilitaire PSSH sur votre système Linux, pour l'installation de PSSH, vous pouvez lire cet article.

  1. How to Install Pssh Tool to Execute Commands on Multiple Linux Servers

Presque toutes les différentes options utilisées avec ces outils sont les mêmes, à l'exception de quelques-unes qui sont liées à la fonctionnalité spécifique d'un utilitaire donné.

Comment utiliser Pscp pour transférer / copier des fichiers sur plusieurs serveurs Linux

Lors de l'utilisation de pscp, vous devez créer un fichier séparé qui comprend le numéro d'adresse IP du serveur Linux et le numéro de port SSH dont vous avez besoin pour vous connecter au serveur.

Créons un nouveau fichier appelé «myscphosts.txt» et ajoutons la liste des adresses IP des hôtes Linux et le numéro de port SSH (par défaut 22) comme indiqué.

192.168.0.3:22
192.168.0.9:22

Une fois que vous avez ajouté des hôtes au fichier, il est temps de copier les fichiers de la machine locale vers plusieurs hôtes Linux sous le répertoire/tmp à l'aide de la commande suivante.

# pscp -h myscphosts.txt -l tecmint -Av wine-1.7.55.tar.bz2 /tmp/
OR
# pscp.pssh -h myscphosts.txt -l tecmint -Av wine-1.7.55.tar.bz2 /tmp/
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 17:48:25 [SUCCESS] 192.168.0.3:22
[2] 17:48:35 [SUCCESS] 192.168.0.9:22

Explication sur les options utilisées dans la commande ci-dessus.

  1. -h switch used to read a hosts from a given file and location.
  2. -l switch reads a default username on all hosts that do not define a specific user.
  3. -A switch tells pscp ask for a password and send to ssh.
  4. -v switch is used to run pscp in verbose mode.

Si vous voulez copier tout le répertoire, utilisez l'option -r, qui copiera de manière récursive des répertoires entiers comme indiqué.

# pscp -h myscphosts.txt -l tecmint -Av -r Android\ Games/ /tmp/
OR
# pscp.pssh -h myscphosts.txt -l tecmint -Av -r Android\ Games/ /tmp/
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 17:48:25 [SUCCESS] 192.168.0.3:22
[2] 17:48:35 [SUCCESS] 192.168.0.9:22

Vous pouvez afficher la page de saisie manuelle du pscp ou utiliser la commande pscp --help pour demander de l'aide.

Conclusion

Cet outil vaut la peine d'être essayé comme si vous contrôliez plusieurs systèmes Linux et que vous disposiez déjà d'une configuration de connexion sans mot de passe basée sur une clé SSH.