自动化多个数据库文件名的最佳方法

时间:2017-08-04 13:28:19

标签: python automation fabric devops

我必须SSH到120台机器并在数据库中转储表并每天将其导出回我的本地机器(所有120个数据库的数据库结构相同)。

数据库中没有“ta”字段,我可以从中提取名称,以便能够识别它来自哪一个,它是至关重要的,可以识别它,因为它是数据分析。

我使用Python工具Fabric来自动化流程并将CSV导出到我的机器上。

  

fab -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 *   来自dfs_va2.artikel_trigger;' >   /Users/admin/Documents/dbdump/dump.csv"   下载:" /Users/johnc/Documents/Imports/dump.csv"

以上是我迄今为止所做的工作,但显然,他们都被命名为#34; dump.csv"有什么可怕的人可以给我一个关于如何处理这个问题的好主意吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试修改命令,如下所示:

  

mysql -uroot -p {your_password} -e'SELECT * FROM dfs_va2.artikel_trigger;' > /Users/admin/Documents/dbdump/$(hostname)_dump.csv“下载:”/ Users / johnc / Documents / Imports / $(hostname)_dump.csv“

hostname返回当前的计算机名称,因此所有文件都应该是唯一的(当然,如果计算机具有唯一的名称) 此外,您不需要每次都导航到/ bin / mysql,只需使用mysql或绝对路径/usr/local/mysql/bin/mysql