1.0 背景:物联网这边还有对应一套的系统,用于接受物联网设备数据,然后通过sftp服务向内网系统传输文件数据,数据传输通道是安博通的单向网闸.
实现方案:基于sftp的文件同步.
遇到的问题:内网数据库中数据无变化,数据同步功能失效.
数据流转:物联网端数据同步服务进程监听mysql这边binlog日志变化,读取数据sql脚本生成文件上传至sftpuser用户的/xx/syncData,内网端数据同步服务消费这里文件数据,在内网端执行sql脚本.
2.0 排查的过程:先了解到发送端这里如何到/xx/syncData,然后消费端从这里获取文件去执行sql脚本,产品通过安博通客户端去查看数据的同步记录,发现最近没有同步的记录,在/xx/syncData里也没有新生成的文件脚本.最后开发定位sftpuser用户上传文件失败.
具体措施分两个阶段:
第一阶段:开发结合技术经理讨论,读取binlog数据处的文件上传的代码可能存在问题,更换上传的工具类,重写文件长传的代码.
第二阶段:开发结合离职同事的分析,大概率是sftp的文件夹权限问题.
3.0 如何处理sftp权限?
禁用 SELinux
sudo setenforce 0
效果图:
4.0 利用sftp客户端工具FileZilla FTP Client文件上传测试.
5.0 后续:如何做好sftp在内网或者离线的状态下自动化安装?