比如要找 INSERT INTO `ims_ewei_shop_member`
1.strace 抓取所有进程并保存结果
strace -v -s 65536 -tt -T $(pidof “php-fpm” | sed ‘s/\([0-9]*\)/-p \1/g’) -o a.txt
2. vim a.txt 找到sql所在行,并找到进程id 2583
2583 11:31:19.516747 sendto(9, “k\1\0\0\3INSERT INTO `ims_ewei_shop_member` SET `uniacid` = ‘2’ , `uid` = ‘1’ , `openid` = ‘owZ3c1EQspceO5qOO4k9sfxtkdt0’ , `realname` = ” , `mobile` = ” , `nickname` = ‘\345\245\275\345\220\215\345\255\227’ , `nickname_wechat` = ‘\345\245\ 275\345\220\215\345\255\227’ , `avatar` = ” , `avatar_wechat` = ” , `gender` = ‘1’ , `province` = ‘\344\270\212\346\265\267’ , `city` = ” , `area` = ” , `createtime` = ‘1571196679’ , `status` = ‘0’”, 367, MSG_DONTWAIT, NULL, 0) = 367 <0.000040>
3.awk 筛选出2583进程的所有操作
awk -F ” ” ‘{if($1==”2583″){print $0}}’ a.txt >2583.log
4.根据 sendto(9, 知道这个sql发给了描述符为9的socket连接
vim搜索 = 9
/= 9
发现有很多 write(5, “137 743\n\n”, 9) = 9,但这些明显不是,下面画红线这个才是正确的。
5.找到第一个疑似文件
2583 11:31:19.428029 lstat(“/data/web/qy/addons/ewei_shopv2/core/model/user.php”, {st_dev=makedev(253, 17)
打开看了下,没有相关insert
6.找到第二个疑似文件
2583 11:31:19.393848 write(5, “fl=(65) /data/web/qy/addons/ewei_shopv2/core/model/member.php\nfn=(342) require_once::/data/web/qy/addons/ewei_shopv2/core/model/member.php\n”, 139) = 139 <0.000027>
打开一看,果然有。他会先调用第一个疑似文件获取openid,然后再insert.

Comments are closed.

Post Navigation