Vous pouvez utiliser la tâche d'arrière-plan avec la commande d'attente. La commande d'attente garantit que toutes les tâches d'arrière-plan sont terminées avant de traiter la ligne suivante. c'est-à-dire que echo sera exécuté après que scp pour les trois nœuds soit terminé.
#!/bin/bash
scp -i anuruddha.pem myfile1.tar [email protected]:/tmp &
scp -i anuruddha.pem myfile2.tar [email protected]:/tmp &
scp -i anuruddha.pem myfile.tar [email protected]:/tmp &
wait
echo "SCP completed"
SSH est capable de faire ce qu'on appelle le "multiplexage" - plusieurs connexions sur une (vers un serveur). Cela peut être une façon de vous permettre ce que vous voulez. Rechercher des mots-clés comme "ControlMaster"
La deuxième méthode consiste à utiliser plus de connexions, puis à envoyer chaque tâche en arrière-plan :
for file in file1 file2 file3 ; do
scp $file server:/tmp/ &
done
Mais, c'est la réponse à votre question - "Comment copier plusieurs fichiers simultanément". Pour accélérer, vous pouvez utiliser un cryptage plus faible (rc4, etc.) et n'oubliez pas non plus que le goulot d'étranglement peut être votre disque dur - car SCP ne limite pas implicitement la vitesse de transfert.
La dernière chose est d'utiliser rsync - dans certains cas, cela peut être beaucoup plus rapide que scp...
Je ne sais pas si cela vous aide, mais j'archive généralement (la compression n'est pas nécessaire. juste l'archivage est suffisant) le fichier à la source, le télécharge, l'extrait. Cela accélérera considérablement le processus. Avant l'archivage, il fallait> 8 heures pour télécharger 1 GoAprès l'archivage, il fallait <8 minutes pour faire de même