自动备份 Servo-Robot 激光检测系统中的数据库文件

黄杰, 2015-07-22
root[a]linuxsand.info

Servo-Robot 激光检测系统有一块 innodisk 的 CF 卡,数据保存在这里。随机软件中,除了常规的 WeldCom,还有 NetSight。

我们在 WeldCom 中配置完检测任务并且运行后,可以打开 NetSight 软件查看结果。同时也可以将 CF 卡内的文件导出。

这个操作是手动的,官方也没有提供自动化的方法。目前我在做的一个项目却有这个需求。最终我搞定了这个问题,并写了一个小程序来自动化这个过程。


简述下。官方的数据库是 MySQL,NetSight 中的手动导出功能实际上用了 mysqldump.exe 实现的。

但是我的问题是,我并不知道数据库的用户、口令。

开始走了一次弯路。我通过 WireShark 来抓包,以为拿到了口令(我这台是 21c56de29f07b06ad2d8dc7e8d753eccee1e045e),尝试 decode 发现并不是有效的口令。Google 之后了解到这是通过某种方式 hash 过的字串。(拓展阅读

难道真要用暴力破解吗?我没这么做。

(略)

我最终设法得到了数据库的 root 口令。由于公开可能有麻烦上身,这里不谈。依葫芦画瓢,我的 backupSrDb.exe 也使用了 mysqldump。

更新:后来需要在备份前清除已有数据,于是加上了清除功能,改写后命名程序未 srdb.exe,这么用:

当然为了调用简单,可以写 2 个批处理脚本解决。