问题描述
该笔记将记录:在 Linux 中,如何监控文件系统文件删除,找出删除文件的进程,以及常见问题处理。
解决方案
解决该问题的方案有很多,比如:
1)auditd
2)sysdig
3)inotifywait(仅能获取变化文件,无法获取相关进程)
方案一、通过 auditd 服务
第一步、安装 auditd 服务:
# apt-get install -y auditd # systemctl enable auditd.service # systemctl start auditd.service
第二步、添加服务配置,以监控文件删除:
# vi /etc/audit/rules.d/audit.rules -a always,exit -F dir=/tmp -S unlink -S unlinkat -S rename -S renameat -S rmdir -k delete_var # systemctl restart auditd.service # auditctl -l -a always,exit -S rename,rmdir,unlink,unlinkat,renameat -F dir=/var/tmp -F key=delete_var
第三步、查看日志,以获取文件删除的原因:
# ausearch -k delete_var
参考文件
How to use auditd to monitor a file deletion in Linux – The Geek Diary
linux – Auditd – auditctl rule to monitor dir only (not all sub dir and files etc..) – Stack Overflow
rm – How to find the pid of the process which has deleted a file? – Ask Ubuntu