nginx.conf被删除后如何通过内存导出nginx.conf文件
问题
上午同事反馈,nginx下conf/nginx.conf 文件是空的.
解决
m1: 通过nginx内存转储出来nginx.conf
01、查看nginx master进程
02、查看内存映射是否存在heap类型
cat /proc/x/maps|grep heap (空空如也)
03、如果存在heap类型则gdb转储堆文件
yum install -y gdb
gdb --pid x
dump memory /tmp/ngx_heap 0x~ 0x~
0x 十六进制寻址,发现使用libjemalloc替代默认libc没有heap
04、从转储读取字符串
strings /tmp/ngx_heap
strings -C 50 "http" /tmp/ngx_heap
m2: 是否有打开的nginx.conf转储文件
01、根据nginx关联进程发现,有个用户打开nginx.conf
02、分析内存映射发现heap文件,从哪儿转储nginx.conf文件
也是可以通过登陆IP,从而找到登陆的同事