2017-08-04 64 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

因为我将在本地运行脚本,它输出它作为我的主机名而不是远程机器,这是一个痛苦.. –

相关问题