首页 > 系统相关 >Linux 文件被进程调用情况下误删文件修复

Linux 文件被进程调用情况下误删文件修复

时间:2024-01-22 10:36:08浏览次数:38  
标签:INFO 文件 log 误删 Linux 1705888970 root first

  具体的原理为: 当进程打开了某个文件时,只要该进程保持打开该文件,即使将文件删除,它依然存在于磁盘中。进程并不知道文件已经被删除,它仍然可以通过打开该文件时提供给它的文件描述符进行读取和写入。除了该进程之外,这个文件是不可见的,因为已经删除了其相应的目录索引节点。

  进程打开的文件描述符就存放在 /proc/PID/fd 目录下。/proc 目录挂载的是在内存中所映射的一块区域,所以这些文件和目录并不存在于磁盘中,因此当我们对这些文件进行读取和写入时,实际上是在从内存中获取相关信息。

  下面的 demo 演示如何恢复被误删的文件。

# 模拟生成一个日志文件
[Mon Jan 22 10:02:53 root@localhost ~ ]# for i in {1..100}; do echo "INFO: $(date +%s) This is the first log $i" >> /root/123.log ;done

# 通过more 命令来实现后台进程调用
more /root/123.log
# 打开后按ctrl + z 把任务放到后台执行,然后通过lsof查看一下进程打开文件情况
[Mon Jan 22 10:14:09 root@localhost ~ ]# lsof 123.log
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
more    37726 root    3r   REG  253,0     4192 33575036 123.log

# 模拟误删文件
[Mon Jan 22 10:16:46 root@localhost ~ ]# rm -f 123.log 
[Mon Jan 22 10:17:48 root@localhost ~ ]# lsof -u root | grep '123.log'
more      37726 root    3r      REG              253,0      4192   33575036 /root/123.log (deleted)

# 开始进行恢复
[Mon Jan 22 10:19:30 root@localhost ~ ]# cat /proc/37726/fd/3 > /root/123.log
[Mon Jan 22 10:19:40 root@localhost ~ ]# cat /root/123.log | head 
INFO: 1705888970 This is the first log 1
INFO: 1705888970 This is the first log 2
INFO: 1705888970 This is the first log 3
INFO: 1705888970 This is the first log 4
INFO: 1705888970 This is the first log 5
INFO: 1705888970 This is the first log 6
INFO: 1705888970 This is the first log 7
INFO: 1705888970 This is the first log 8
INFO: 1705888970 This is the first log 9
INFO: 1705888970 This is the first log 10

注:这里是模拟环境,如果实际工作中,还原文件后还要注意文件权限以及重启进程才能生效

标签:INFO,文件,log,误删,Linux,1705888970,root,first
From: https://www.cnblogs.com/HByang/p/17979426

相关文章

  • Qt采集本地摄像头推流成rtsp/rtmp(可网页播放/支持嵌入式linux)
    一、功能特点支持各种本地视频文件和网络视频文件。支持各种网络视频流,网络摄像头,协议包括rtsp、rtmp、http。支持将本地摄像头设备推流,可指定分辨率和帧率等。支持将本地桌面推流,可指定屏幕区域和帧率等。自动启动流媒体服务程序,默认mediamtx(原rtsp-simple-server),可选用srs......
  • 制造业如何做好供应商文件分发管理?
    制造业中,供应商文件分发管理是供应链管理的关键环节,涉及产品设计、生产计划、质量控制等多个方面。供应商文件分发是指将供应商提供的文件、图纸、技术文档等资料在企业内部或与供应商之间进行有效管理和传递的过程。这通常涉及到供应链管理中的文档控制和信息共享。以下是供应......
  • 常用的Linux命令:查看日志中报错信息的前后多少行
    方法一:使用cat xx.log|grep'错误信息'这个只能查询出日志文件中是否有保持信息,看不到报错信息的前后上下文信息;catinfo.log|grep'handlermqarticlefilerecorddatafail'ERRORc.u.c.s.d.s.u.i.HelpDataSyncServiceImpl[HelpDataSyncServiceImpl.java:623]handler......
  • Linux之exec函数族
    exec系统调用会替换进程映像。在进程的创建上Unix系统采用了一个独特的方法,它将进程创建与加载一个新进程映像分离。这样的好处是有更多的余地对两种操作进行管理。当我们创建了一个进程之后,通常要将子进程替换成新的进程映像,这可以用exec函数族来进行。同时,exec函数族也可以将......
  • 华企盾DSC:外发文件设置编辑权限 阅读次数 阅后即焚 文件过期
    互联网时代,信息流通迅速,一份关键的内部文件一旦外泄,可能毁掉公司数月、甚至数年的努力。企业多次碰壁后终于发现,仅仅依靠员工层层审批、体系内控制,已难以防止数据泄密这一严重问题。更为糟糕的是,一旦文件发送出去,系统往往不能有效地控制未授权阅读的发生。痛定思痛,企业用户渴望有......
  • Linux 中常见目录的作用
    byemanjusakafromhttps://www.emanjusaka.top/2024/01/linux-directory-role彼岸花开可奈何本文欢迎分享与聚合,全文转载请留下原文地址。Linux是一个严谨的操作系统,每个目录存放什么文件是有明确的要求和规范的。我们应该去了解这些目录的作用,然后按照目录要求去操作。......
  • Linux下移植pjsip使用QT开发
    Linux下移植pjsip,使用QT开发1、移植pjsipenv:fedora14arm-linuc-gcc:gccversion4.5.1(ctng-1.8.1-FA)#./configure\CC=arm-linux-gcc\CROSS_COMPILE=arm-none-linux-gnueabi-\--build=i386-linux\--prefix=/usr/local/pjsip\--host=arm-none-linux-gnueabi\--target=arm......
  • linux设置地址
    ifconfigeno3ifconfigeno4DEVICE="eno3"BOOTPROTO="static"HWADDR="f4:6b:8c:96:22:34"IPV6INIT="yes"NM_CONTROLLED="yes"ONBOOT="yes"TYPE="Ethernet"IPADDR="192.168.2.200"NETMASK=&......
  • m基于FPGA的Hamming汉明编译码verilog实现,包含testbench测试文件,不使用IP核
    1.算法仿真效果本系统进行了Vivado2019.2平台的开发,测试结果如下:2.算法涉及理论知识概要在现代数字通信和存储系统中,错误检测和纠正(ErrorDetectionandCorrection,EDC)机制是至关重要的。Hamming码,以其发明者RichardHamming命名,是一种线性错误检测和纠正码,广泛应用于这些系......
  • 新增/proc文件目录
    Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运......