有个每天定时的数据迁移任务,数据源在远程服务器 A 数据库中,要每天把数据迁移到另一个远程服务器 B 的数据库中,其中 A 需要通过登录 ssh-vpn 才能把数据搬到 B 中,用 python 设计成自动化迁移,有个难题是 ssh-vpn 每隔半小时会断开,需要手动重新登录,考虑了两种方式都失败了,请大佬指点下:
1、使用 Python pymouse 每天在迁移前定时点击远程桌面的 EasyConnect,登录 vpn 再进行数据迁移作业;失败原因:由于是在远程桌面,离开远程桌面后,程序无法捕获鼠标位置,无法点击 EasyConnect,登录 vpn ;
2、利用 from sshtunnel import SSHTunnelForwarder python 链接 vpn
server = SSHTunnelForwarder(ssh_address_or_host=('ip', port), # 指定 SSH 中间登录地址和端口号
ssh_username='账号', # 指定地址 B 的 SSH 登录用户名
ssh_password='密码', # 指定地址 B 的 SSH 登录密码
#local_bind_address=('ip',port), # 绑定本地地址 A (默认 127.0.0.1 )及与 B 相通的端口(根据网络策略配置,若端口全放,则此行无需配置,使用默认即可)
remote_bind_address=('ip', port) # 指定最终目标 C 地址,端口号为 mysql 默认端口号 3306
)
报错:
2019-08-05 16:52:11,045| ERROR | Exception: Error reading SSH protocol banner[WinError 10054] 远程主机强迫关闭了一个现有的连接。
2019-08-05 16:52:11,153| ERROR | Traceback (most recent call last):
2019-08-05 16:52:11,153| ERROR | File "D:\python\lib\site-packages\paramiko\
transport.py", line 2211, in _check_banner
2019-08-05 16:52:11,153| ERROR | buf = self.packetizer.readline(timeout)
2019-08-05 16:52:11,153| ERROR | File "D:\python\lib\site-packages\paramiko\
packet.py", line 380, in readline
2019-08-05 16:52:11,153| ERROR | buf += self._read_timeout(timeout)
2019-08-05 16:52:11,153| ERROR | File "D:\python\lib\site-packages\paramiko\
packet.py", line 607, in _read_timeout
2019-08-05 16:52:11,153| ERROR | x = self.__socket.recv(128)
2019-08-05 16:52:11,154| ERROR | ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。
2019-08-05 16:52:11,154| ERROR |
2019-08-05 16:52:11,154| ERROR | During handling of the above exception, another exception occurred:
2019-08-05 16:52:11,154| ERROR |
2019-08-05 16:52:11,154| ERROR | Traceback (most recent call last):
2019-08-05 16:52:11,154| ERROR | File "D:\python\lib\site-packages\paramiko\
transport.py", line 2039, in run
2019-08-05 16:52:11,154| ERROR | self._check_banner()
2019-08-05 16:52:11,154| ERROR | File "D:\python\lib\site-packages\paramiko\
transport.py", line 2216, in _check_banner
2019-08-05 16:52:11,154| ERROR | "Error reading SSH protocol banner" + str(e)
2019-08-05 16:52:11,154| ERROR | paramiko.ssh_exception.SSHException: Error reading SSH protocol banner[WinError 10054] 远程主机强迫关闭了一个现有的连接。
2019-08-05 16:52:11,154| ERROR |
2019-08-05 16:52:11,154| ERROR | Could not connect to gateway ip:port : Error reading SSH protocol banner[WinError 10054] 远程主机强迫关闭了一个现有的连接。
Could not establish session to SSH gateway
百度了好久也没发现问题错在哪里,请各位大佬不吝赐教,谢谢
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.