Nous avons le déploiement multiple d'une application sur des serveurs tels que app00, app01 et ainsi de suite. J'ai besoin de copier un seul fichier journal de tous ces serveurs sur mon Mac local afin que je puisse effectuer des opérations de grepping et de découpe.
J'ai utilisé csshX pour visualiser ce fichier mais je ne trouve pas d'équivalent pour scp. Je veux essentiellement deux choses:
- Possibilité de se connecter à n numéros de ces serveurs et de copier le fichier
- Évitez de nommer les conflits localement, peut-être en préfixant le fichier journal avec le nom d'hôte du serveur
Comment puis-je faire cela?
Réponses:
C'est trivial à faire avec un petit script. Par exemple:
Ce qui précède copiera le fichier de chacun des serveurs séquentiellement et le nommera
SERVERNAME_file
. Ainsi, le fichier deapp0
seraapp0_file
etc. Vous pouvez évidemment changer les noms en ce que vous voulez.la source
&
à la fin de lascp
commande et unwait
à la fin, et vous avez la concurrence sans frais supplémentaires.Utilisez GNU parallèle :
Contrairement aux solutions qui utilisent un
for
, cela exécutera tous les téléchargements en parallèlela source
la source
Si vous pouvez utiliser python, il existe un module intéressant qui cherche à simplifier les tâches d'administration de la machine appelées fabric: http://docs.fabfile.org/en/latest/tutorial.html
J'ai voulu l'utiliser mais je ne l'ai pas trop
la source
Cela a fonctionné pour moi
la source