-
Notifications
You must be signed in to change notification settings - Fork 64
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
我在ZKDB.db里插入了信息,但是还是没有记录 #2
Comments
人力没有记录是因为修改方法不对。你一定是将ZKDB.db下载编辑后再上传了,这样是无效的。因为考勤机内和数据库关联的进程没有结束,上传覆盖原文件后数据库文件的inode会变,对于程序来讲,找不到inode等于数据库被删除了,所有新的考勤数据都放在了程序缓存中,并且读不到数据库中修改后的数据内容。 “Unix/Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称或者绰号。” 所以,解决方案是在telnet现场用sqlite3_mips直接修改ZKDB.db,这时候inode不变,程序缓存和数据库内容永远是同步的。 有必要多说一点的是: |
抱歉,是我没有表达清楚,是ZKDB.DB里有记录了,但是公司的考勤系统里没有记录,我是直接telnet 上去执行的sqlite3_mips添加的记录,同时,我发现不仅在ATT_LOG中有记录,在MESSAGE_QUEUE这个表里也有,后来我两个表都手动添加了记录,但是在考勤系统中,还是没有记录, |
我明白你的意思了,并且你的怀疑是正确的。人力如果一直将考勤软件保持运行状态,并设置了轮询时间,物理打卡时会自动上报到软件中,而数据库的直接编辑并不会上报。如果人力月初点击“从设备下载记录数据”,那么数据库中的信息是会更新到考勤软件中的,但如果人力完全依赖设备上报,就比较麻烦了 -------补充------- |
是的,后来我确实想尝试用tcpdump 抓包来试试,但是考勤机的环境实在是太简陋,也没有多余的时间去折腾了。 |
我补充一句,考勤系统的数据一般情况并不是实时去考勤机上拉取的。你注意下这个问题。另外考勤机上也可能有Web界面来查询考勤记录,这个就是实时的。 |
这个也是我觉得奇怪的地方,原理上不应该是实时的,但是数据在人力哪里就是没有,或者是他们的服务器上做了什么特别的设置,对这种方式上报的数据不予接受?我扫过服务器,无奈水平有限,进不去。 |
我这边也是...修改了并没有任何反应 |
我在ZKDB.db里插入了考勤信息,但是人事那边是没有记录的,你有遇到这样的情况吗?
The text was updated successfully, but these errors were encountered: