首页 > Operation System > 用systemtap监视文件被删除的情况

用systemtap监视文件被删除的情况

2013年3月15日 发表评论 阅读评论

  以前有n次碰到人说文件被莫名删掉的问题,当时也想过n多种应对方法,比如chattr +i设置权限、inotify监视文件系统等等办法。自打知道systemtap这个大杀器以后,知道这个东西也能解决这个问题。最近有时间,于是就做了点测试。
  测试环境是CentOS 6.3,kernel是2.6.32-279.el6.x86_6
  首先,是安装systemtap

yum install kernel-devel systemtap kernel-debug kernel-debuginfo-common kernel-debuginfo

需要注意的是:安装kernel-debuginfo和kernel-debuginfo-common这两个包需要先在/etc/yum.repos.d/CentOS-Debuginfo.repo里启用debug这个repo。
  然后写一个简单的stap文件,像这样:

probe syscall.unlink
{
    printf ("%s(%d) unlink (%s) userID(%d)\n", execname(), pid(), argstr, uid())
}

probe syscall.unlinkat
{
    printf ("%s(%d) unlinkat (%s) userID(%d)\n", execname(), pid(), argstr, uid())
}

  最后,在系统执行:

stap unlink.stap

  这时,在别的session中删掉系统的某个文件,这里的控制台就会打印出来相应的信息。

分类: Operation System 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.