2017-08-04 8 views
0

私は120台のマシンにSSHをインストールし、データベースにテーブルのダンプを作成し、これをローカルマシンに毎日エクスポートします(120データベースすべてで同じデータベース構造)。複数のデータベースのファイル名を自動化する最良の方法

名前を抽出できるフィールドがデータベースに存在しないため、データ解析の場合と同じように、名前の由来を特定することが不可欠です。

私はプロセスを自動化し、自分のマシンにCSVをエクスポートするPythonのツールのファブリックを使用しています。..

ファブ-u PAI -H 10.0.0.35,10.0.0.XX、10.0。/*/usr/local/mysql/bin & & ./mysql -u root -p -e 'SELECT * FROM dfs_va2.artikel_trigger;' > /Users/admin/Documents/dbdump/dump.csvは」 ダウンロード: "/ユーザ/ JOHNC /ドキュメント/インポート/ dump.csv"

上記は、私がこれまでになく、明確に取り組んで持っているものです彼らはすべて "dump.csv"という名前になります。そこに素晴らしい人がいたら、これにアプローチする方法について私に良いアイデアを与えることができますか?

答えて

0

あなたは次のようにあなたのコマンドを変更しようとすることができます:-e

mysqlの-uroot -p {your_passwordに} 'dfs_va2.artikel_trigger SELECT * FROM;' > /Users/admin/Documents/dbdump/$(hostname)_dump.csv」ダウンロード: "/ユーザ/ JOHNC /ドキュメント/輸入/ $(ホスト名)_dump.csv"

hostname戻り、現在のマシン名ので、 (マシンは一意の名前を持っている場合はもちろんの)すべてのファイルが はまた、あなたが、あなたは、単にmysqlまたは絶対パスを使用することができます/ binに/ mysqlのたびに移動する必要はありません一意である必要があります/usr/local/mysql/bin/mysql

+0

ホスト名があったであろうことを優れたアプローチです。残念ながら、ホスト名はデジタルサイネージのために作られたマシンのため、すべて同じディレクトリ名です。 –

+0

VMでなければ 'lsblk -dno serial/de v/sda' これは、HDDのシリアル番号を返します。あまり有益ではないかもしれませんが、ユニークな識別子として使用することができます –

+0

私はローカルでスクリプトを実行しているので、リモートマシンではなくホスト名として出力します。 –

関連する問題