mysql导出导入txt以及sftp自动下载(二)

场景需求:

    公网服务器(以下简称server)mysql数据库里每五分钟导出一次统计数据,同时本地内网服务器(以下简称client)每五分钟通过sftp把导出的txt导入到本地测试数据库,使用python(highcharts)做数据图形展示。

需求分析:

1.所有实现命令基于shell环境编写

2.公网内网服务器使用ntp服务,保证两台机器时间同步

3.需要对select结果进行本地导出生成xls或者txt等类型文件(考虑到安全问题,公网mysql不对外开放远程权限,数据只能先存储在本地公网服务器)

4.时间同步以后,server与client通过做ssh密钥,计划任务使用sftp方式达到自动下载数据目的

5.实际操作使用mysqlimport来导入txt文件到本地数据库

SFTP免密钥登录

C端:root@192.168.1.10
S端:root@192.168.1.11
实现思路:通过SSH生成公钥和私钥文件,保存公钥文件到服务器,实现在脚本中通过密钥验证不需要交互式的密码输入,实现脚本自动化执行。

在C端生成密钥对

[root@localhost ~]# ssh-keygen

 1、一路回车,会在C端root用户家目录下生成SSH私钥文件(id_rsa)和公钥文件(id_rsa.pub),如下图:

此时可以在root的家目录的.ssh下看到私钥id_rsa和公钥id_rsa.pub

[root@localhost .ssh]# cd
[root@localhost ~]# cd .ssh
[root@localhost .ssh]# ls
id_rsa  id_rsa.pub  known_hosts  known_hosts.old

 

 2、复制id_rsa.pub到S端家目录的.ssh(如果没有该目录请新建一个)下,改文件名为:authorized_keys(多台主机隔行写入即可),如下图:

 

 3、写个脚本测试是否可以免密钥登录了
#!/bin/bash
sleep 5s
sftp 192.168.1.11 <<EOF
get /tmp/test.txt /mnt/test.txt
EOF

  参考资料:https://blog.csdn.net/dongqilin/article/details/37939009

posted @ 2018-07-03 16:34  天上月  阅读(205)  评论(0编辑  收藏  举报