最近有同事问我说他有个现场环境,经常会丢失业务文件,每天都出现,几百个里面丢失1到两个。

为了解决这个问题,我让他布置audit,具体可以man一下auditctl。

过了一天,他说audit.log中抓到了,知道是某个pid做的动作,但是由于该pid是瞬间的,无法知道是谁干的,只知道是调用rm干的。

然后,我file查看一下rm的属性。

 file /usr/bin/rm
/usr/bin/rm: ELF -bit LSB executable, x86-, version (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6., BuildID[sha1]=7d9d4d6f6883e3638816d898d389e797814a1a1c, stripped

然后将rm 通过mv 重命名为rm_elf.

再touch一个文件,叫rm,写入脚本,先记录日志,再执行真正的rm,类似如下:

[root@centos7 tmp]# cd /usr/bin/
[root@centos7 bin]# ls rm*
rm rmail rmail.postfix rmdir rm_elf rmic rmid rmiregistry
[root@centos7 bin]# cat rm
#!/bin/bash
date >>/tmp/caq.txt
echo "PPID of this script: $PPID" >>/tmp/caq.txt
ps -ef|grep $PPID |grep -v grep >>/tmp/caq.txt
echo "rm $* now" >>/tmp/caq.txt
rm_elf $*

效果如下:

[root@centos7 tmp]# touch
[root@centos7 tmp]# rm
rm_elf:是否删除普通空文件 ""?y
[root@centos7 tmp]# cat /tmp/caq.txt
2018年 09月 05日 星期三 :: CST
PPID of this script:
root : pts/ :: /bin/bash /usr/bin/rm -i
root 9月04 pts/ :: -bash
rm -i now

恩,很小很简单,但是能work。

linux 一个跟踪文件删除的小技巧的更多相关文章

  1. Linux下通过find命令进行rm文件删除的小技巧

       我们常常会通过find命令进行批量操作.如:批量删除旧文件.批量改动.基于时间的文件统计.基于文件大小的文件统计等.在这些操作其中,因为rm删除操作会导致文件夹结构变化,假设要通过find结合r ...

  2. 在linux系统上文件传输的小技巧

    各位做运维的小伙伴,你是不是常常在为文件传到linux服务器上感到头疼呢,我们知道常用的文件传输工具有好多,比如xftp,winscp等,但是有没有比这更简单的呢?当然是有的呢,下面给大家介绍下: y ...

  3. Linux查看History记录加时间戳小技巧

    Linux查看History记录加时间戳小技巧 熟悉bash的都一定知道使用history可以输出你曾经输入过的历史命令,例如[root@servyou_web ~]# history | more ...

  4. Linux系列:Ubuntu/fedora实用小技巧—禁止自动锁屏、设置免密码自动登录、免密码执行sudo操作

    首先声明:该文虽以Ubuntu 13.04为例,同样适用于Fedora 17(已测试),但在较低版本的Ubuntu下可能有所差异,具体看后面的注意事项. 技巧目录: 解决Ubuntu下每隔几分钟自动锁 ...

  5. 文件上传小技巧/原生态【html篇】

    引语:大家都知道,html中上传文件就一个input,type=file就搞定了.但是,这个标签的样式,实在不值得提点什么,要改动他的样式,恐怕也是较难的.但是其实挺简单,今天就来说说上传文件小技巧吧 ...

  6. Linux命令学习之两个小技巧(1)

    本篇主要想讲两个小技巧.本来技巧之类的话应该放在学完整个东西之后或者在学习中遇到时再说的,但是这两个技巧其实很简单,很多人只要我一提就知道了.与其说是技巧,不如说是注意事项. 自动补全 在Linux终 ...

  7. linux 用 rsync 快速删除大量小文件

    假设我们在目录 /tmp/to_delete 下有很多小文件 a1 a2 a3 f1 f2 f3 现在我们想快速的删除f 开头的文件. 如果文件量大,用rm 可能会失败,而且会很慢, 所以用rsync ...

  8. 文件上传小技巧/后端处理【以php示例】

    引语:在上一篇文章中说到,在页面中可以用隐藏的方式让你的上传页面看起来漂亮.但是这对于性能来说,并没有什么卵用,那么在后台的处理中,难道就没有一些处理技巧么?所谓后台的技巧,应该要包括上传得快一点,上 ...

  9. bat文件的一些小技巧

    bat文件的简介: bat文件是dos下的批处理文件.批处理文件是无格式的文本文件,它包含一条或多条命令.它的文件扩展名为 .bat 或 .cmd.在命令提示下键入批处理文件的名称,或者双击该批处理文 ...

随机推荐

  1. [UE4]Cast to OverlaySlot、Set Vertical Alignment、Get Slot,解决Child Widget垂直居中对齐问题

  2. Java基础:IO流之字节流和字符流

    1. 流的概念 流(stream)的概念源于UNIX中管道(pipe)的概念.在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备.外部文件等. 一个流,必有源端和目的端 ...

  3. Sharing Configuration in ASP.NET Core SPA Scenarios

    https://blogs.msdn.microsoft.com/webdev/2017/10/27/sharing-configuration-in-asp-net-core-spa-scenari ...

  4. C#存储过程 传入参数 传出参数 结果集

    作者:卞功鑫 转载请保留:http://www.cnblogs.com/BinBinGo/p/6400928.html //1 连接字符串 string connectionString = &quo ...

  5. 批处理taskkill运行结束不掉程序以及停留问题

    我原来就一句代码 TASKKILL /F /IM QQ.exe 保存为taskkill.bat,结果运行起来一直显示,但是没有结束掉进程,百度搜索才知道taskkill为系统关键字,不能命名为task ...

  6. C# 中使用锁防止多线程冲突

    在编程的时候经常会用到多线程,有时候如果多线程操作同一个资源就会导致冲突,.NET提供了多种方法来防止冲突发生,这里讲下Mutex 该类位于System.Threading命名空间,常用的方式是这样: ...

  7. 递归锁,event事件和信号量

    锁通常被用来实现对共享资源的同步访问.为每一个共享资源创建一个Lock对象,当你需要访问该资源时,调用acquire方法来获取锁对象(如果其它线程已经获得了该锁,则当前线程需等待其被释放),待资源访问 ...

  8. 查看计算机CPU、内存使用情况

    Shift + Ctrl + Esc,打开Windows任务管理器,点击性能,如图: 可以清楚的看到整台机子的CPU.内存使用情况,其中CPU使用记录下有8个小窗口,因为博主的CPU是8核的,讲讲CP ...

  9. python学习之----爬取图片

    import os from urllib.request import urlretrieve from urllib.request import urlopen from bs4 import ...

  10. c# 后台AJAX

    public class BackA { #region 后台 AJAX public static string GetPage(string posturl) { Stream outstream ...