2017-08-04 4 views
0

Je dois SSH dans 120 machines et faire un vidage d'une table dans les bases de données et l'exporter chaque jour sur ma machine locale (même structure de base de données pour les 120 bases de données).Meilleure façon d'automatiser les noms de fichiers de plusieurs bases de données

Il n'y a pas de champ dans la base de données dont je puisse extraire le nom pour pouvoir identifier celui dont il provient, il est essentiel qu'il puisse être identifié, comme c'est le cas pour l'analyse de données.

J'utilise l'outil Python Fabric pour automatiser le processus et exporter le CSV sur ma machine ..

-u fab PAI -H 10.0.0.35,10.0.0.XX, 10.0. 0.0.XX, 10.0.0.XX -z 1 cmdrun: "cd/usr/local/mysql/bin & & ./mysql -u racine -p -e 'SELECT * FROM dfs_va2.artikel_trigger;' > /Users/admin/Documents/dbdump/dump.csv » téléchargement: "/ Users/GTB/Documents/Importations/dump.csv"

Au-dessus est ce que j'ai travaillé si loin mais il est clair , ils seront tous nommés "dump.csv" y a-t-il des gens géniaux là-bas qui peuvent me donner une bonne idée sur la façon d'aborder ça?

Répondre

0

Vous pouvez essayer de modifier votre commande comme suit:

mysql -uroot -p {} votre_mot_de_passe -e 'SELECT * FROM dfs_va2.artikel_trigger;' > /Users/admin/Documents/dbdump/$(hostname)_dump.csv » téléchargement: "/ Users/GTB/Documents/Importations/$ (nom d'hôte) _dump.csv"

nom de la machine actuelle hostname retours donc tous vos fichiers doivent être uniques (bien sûr, si les machines ont des noms uniques) vous n'avez pas besoin pour naviguer vers/bin/mysql chaque fois, vous pouvez utiliser simplement mysql ou chemin absolu /usr/local/mysql/bin/mysql

+0

que le nom d'hôte aurait été un excellente approche .. malheureusement, les noms d'hôte ont tous les mêmes noms de répertoires en raison des machines construites pour la signalisation numérique, donc ils sont mis en place exactement les mêmes –

+0

s'ils ne sont pas VM, vous pouvez essayer aussi 'lsblk -dno serial/de v/sda' cela retournera le numéro de série du disque dur, peut-être pas très instructif mais peut être utilisé comme identifiant unique –

+0

Parce que je vais exécuter le script localement il le sort comme mon nom d'hôte pas la machine distante qui est une douleur .. –