2017-08-04 42 views
0

我必須通過SSH進入120臺機器,並在數據庫中創建一個表的轉儲,並每天將其導出到本地計算機(所有120個數據庫的相同數據庫結構)。最好的方法來自動化多個數據庫的文件名

數據庫中沒有可以提取名稱的字段,以便能夠識別它來自哪個名稱,它至關重要的是它可以被識別,因爲它用於數據分析。

我使用Python的工具面料的過程自動化和導出CSV到我的機器..

晶圓廠-u 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 root -p -e'SELECT * FROM dfs_va2.artikel_trigger;' > /Users/admin/Documents/dbdump/dump.csv」 下載: 「/用戶/ johnc /文件/導入/ dump.csv」

以上是我有這麼遠,但明確的工作是什麼,他們都會被命名爲「dump.csv」,那裏有沒有真棒的人可以給我一個關於如何解決這個問題的好主意?

回答

0

你可以嘗試修改您的命令如下:

的mysql -uroot -p {} your_password -e 'SELECT * FROM dfs_va2.artikel_trigger;' > /Users/admin/Documents/dbdump/$(hostname)_dump.csv」下載: 「/用戶/ johnc /文件/導入/ $(主機名)_dump.csv」

hostname返回當前計算機的名稱,以便所有的文件應該是唯一的(當然,如果機器具有唯一的名稱) 你也不必導航爲/ bin/mysql的每一次,你可以簡單地使用mysql或絕對路徑/usr/local/mysql/bin/mysql

+0

該主機名會是一個優秀的方法..不幸的是,主機名都具有相同的目錄名稱,因爲爲數字標牌建立了機器,所以它們的設置完全一樣。 –

+0

如果它們不是VM,那麼您也可以嘗試'lsblk -dno serial/de v/sda' 這將返回硬盤的序列號,可能不是很豐富,但可以用作唯一標識符 –

+0

因爲我將在本地運行腳本,它輸出它作爲我的主機名而不是遠程機器,這是一個痛苦.. –

相關問題