我有一个中央服务器和几个(大约 50 个)远程服务器。我想每晚将一些日志数据从每台服务器传输到中央服务器。它们都运行 Linux,日志存储在 MySQL 中。我对所有服务器都有 ssh 访问权限。
将数据从远程服务器传输到中央服务器的最佳(最简单、最安全、最可靠……)的做法是什么?
谢谢
我有一个中央服务器和几个(大约 50 个)远程服务器。我想每晚将一些日志数据从每台服务器传输到中央服务器。它们都运行 Linux,日志存储在 MySQL 中。我对所有服务器都有 ssh 访问权限。
将数据从远程服务器传输到中央服务器的最佳(最简单、最安全、最可靠……)的做法是什么?
谢谢
根据您的需要和您想要投入的时间,我一直在使用这个脚本来备份数据库。
这是一种经过试验和测试的低成本策略,非常灵活且非常可靠。
您可以将新行导出到 csv 文件。像这样:
SELECT id, name, email INTO OUTFILE '/tmp/result.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY ‘\\’
LINES TERMINATED BY '\n'
FROM users WHERE timestamp > lastExport
然后通过 scp 传输它并通过mysqlimport将其导入 如果数据库是 innoDB,您应该导入第一个引用的表。
一般来说,最简单的方法是使用 mysqldump 转储它并将其重新加载到所有重复的服务器上。您可以使用 mysqldump 的许多选项中的一些来控制诸如锁定、MVCC 快照、哪些表和其他选项之类的事情。
CSV 比 mysqldump 更难,因为您需要确保就如何终止字段、如何转义等达成一致。