精华内容
下载资源
问答
  • 许多情况下,删除的文件都可以恢复,比如在该文件有活动的进程在操作它,并且目前被单个或多个用户使用时。在 Linux 系统,每个当前正在运行的进程都会获得 ID,其被称之为进程标识符 “PID”,并将它们存放在 /...

    使用终端恢复你 Linux 系统上仍在运行进程的已删除文件的快速指南。

    许多情况下,删除的文件都可以恢复,比如在该文件有活动的进程在操作它,并且目前被单个或多个用户使用时。在 Linux 系统中,每个当前正在运行的进程都会获得 ID,其被称之为进程标识符 “PID”,并将它们存放在 /proc 目录中。这正是我们恢复仍在运行的进程中(具有PID)已删除的文件所需要的东西。这里就是介绍我们如何做到这一点的。

    假设你打开了一个压缩文件,之后你删除了这个文件。为了演示目的,压缩文件称为 “opengapps.zip”,这将是之后我们将打开和删除的文件。

    计算原始文件的 MD5 哈希

    删除之前,我们将计算该文件的 MD5。这样我们可以将原来的 MD5 哈希值与恢复文件的 MD5 哈希进行比较。这个过程将保证我们恢复的压缩文件的完整性是一样的,它没有被破坏。

    
    
    1. md5sum opengapps.zip >> md5-opengapps.txt 

    要显示文本文件的内容。

    
    
    1. cat md5-opengapps.txt
    2.  
    3. 86489b68b40d144f0e00a0ea8407f7c0 opengapps.zip 

    检查压缩文件的 MD5 哈希值之后。我们将压缩文件保持打开(LCTT 译注:此处是使用 file-roller 这个图形界面的解压程序保持对该压缩文件的打开,其内置在 GNOME 环境中;在桌面环境中,使用桌面工具打开一个压缩包也能起到同样的作用。又及,本文举例不是很恰当,如果是删除了某个服务进程的已经打开的配置文件,那么这种恢复就很有意义),并将其删除。之后,我们将从文件的恢复过程开始,步骤如下:

    
    
    1. rm opengapps.zip 

    删除文件的恢复过程

    正如我们前面提到的,运行的进程在 /proc 目录中。我们可以使用以下命令搜索该目录中需要的进程:

    由于我们已经知道文件名包括 .zip 扩展名,因此我们可以使用 .zip 扩展名进行搜索。它将限制输出结果并显示所需的进程。

    
    
    1. ps -axu | grep .zip 
    2. m        13119  0.8  1.0 121788 30788 ?        Sl   06:17   0:00 file-roller /home/m/Downloads/Compressed/opengapps.zip 
    3. m        13164  0.0  0.0   5108   832 pts/20   S+   06:18   0:00 grep --color=auto .zip 

    然后我们将进入到包含 PID 13119 的目录并打开 fd 子目录。

    
    
    1. cd /proc/13119/fd 

    fd (文件描述符)目录包含多个文件,包括我们需要恢复的文件。该文件以硬链接的方式链接到原始文件。 fd 目录中的所有文件都以数字链接到“文件名”。因此,要确定这些文件中的哪一个链接到该原始文件,我们将用详细列表选项列出 /fd 目录。

    
    
    1. ls -l 
    2. total 0 
    3. lr-x------ 1 m m 64 Jul 14 06:17 0 -> /dev/null 
    4. lrwx------ 1 m m 64 Jul 14 06:17 1 -> socket:[26161] 
    5. lrwx------ 1 m m 64 Jul 14 06:17 10 -> anon_inode:[eventfd] 
    6. lr-x------ 1 m m 64 Jul 14 06:17 11 -> anon_inode:inotify 
    7. lrwx------ 1 m m 64 Jul 14 06:17 12 -> socket:[5752671] 
    8. lr-x------ 1 m m 64 Jul 14 06:17 13 -> /home/m/Downloads/Compressed/opengapps.zip (deleted) 
    9. lrwx------ 1 m m 64 Jul 14 06:17 2 -> socket:[26161] 
    10. lrwx------ 1 m m 64 Jul 14 06:17 3 -> anon_inode:[eventfd] 
    11. lrwx------ 1 m m 64 Jul 14 06:17 4 -> anon_inode:[eventfd] 
    12. lrwx------ 1 m m 64 Jul 14 06:17 5 -> socket:[5751361] 
    13. lrwx------ 1 m m 64 Jul 14 06:17 6 -> anon_inode:[eventfd] 
    14. lrwx------ 1 m m 64 Jul 14 06:17 7 -> anon_inode:[eventfd] 
    15. lrwx------ 1 m m 64 Jul 14 06:17 8 -> socket:[5751363] 
    16. lrwx------ 1 m m 64 Jul 14 06:17 9 -> socket:[5751365] 

    正如你在终端输出中看到的,原始文件 “opengapps.zip” 已被删除,但它仍然链接到一个文件名 13,其进程 PID 13119。但是,我们仍然可以通过将链接的文件复制到安全的地方来恢复它。

    
    
    1. cp 13 /home/m/Downloads/Compressed 

    文件复制后。我们将返回包含恢复文件的目录,并使用以下命令重命名它。

    
    
    1. mv 13 opengapps-recovered.zip 

    计算恢复文件的 MD5 哈希

    由于我们已经恢复了该文件。让我们检查该文件的完整性,这只是为了确保文件没有损坏,并且和原来一样。早先我们保存了原始文件的 MD5 哈希值。

    
    
    1. md5sum opengapps-recovered.zip >> md5-opengapps.txt 

    该命令将检查文件的 MD5 哈希值,并在文件中追加新恢复文件的 MD5 哈希值,以轻松比较两个 MD5 哈希值。

    可以显示文本文件的内容来比较原始文件和恢复文件的 MD5 哈希值。

    
    
    1. cat md5-opengapps.txt 
    2. 86489b68b40d144f0e00a0ea8407f7c0  opengapps.zip 
    3. 86489b68b40d144f0e00a0ea8407f7c0  opengapps-recovered.zip 

    恢复文件的 MD5 哈希是一样的。所以,我们成功地恢复了我们以前删除的文件,并且恢复后文件完整性一致,并且工作正常。

    注意: 在某些情况下,某些文件无法通过 ps -axu 命令看到。 所以,尝试检查运行的程序,并从中恢复文件。

    假设我们有一个使用 Totem 媒体播放器播放中的以 .avi 为扩展名的视频。你需要做的就是检查 Totem 的 PID,并按照本示例中提到的相同说明进行操作。

    要查找正在运行的程序的 PID,请使用以下命令,后面跟程序的名称。

    
    
    1. pidof 程序名 

    通过分享支持我们。 





    作者:Mhnassif
    来源:51CTO
    展开全文
  • 在Linux删除了某个文件,但是 ps-ef|grep 文件名 发现某个进程还在使用该文件,那么可以通 过以下方式恢复文件。 例如:创建一个简单文件/tmp/test.txt, 随便向里面写点内容 两个client模拟,client1 负...
    Linux中误删除了某个文件,但是 ps-ef|grep 文件名 发现某个进程还在使用该文件,那么可以通

     

    过以下方式恢复文件。

    例如:创建一个简单文件/tmp/test.txt, 随便向里面写点内容

    两个client模拟,client1 负责打开文件less /tmp/test.txt(模拟占用线程)

    client2 负责恢复文件,恢复步骤(均在client2上执行)

    1. 查看/tmp/test.txt被占用的进程id
    [root@host tmp]# ps -ef|grep test.txt
    root     31631 31539  0 09:35 pts/0    00:00:00 less test.txt
    root     31649 31579  0 09:36 pts/1    00:00:00 grep test.txt
    2. cd /proc/31631/fd 文件夹中
    3. 执行ll命令
    [root@host fd]# ll
    total 0
    lrwx------ 1 root root 64 Dec  3 09:36 0 -> /dev/pts/0
    lrwx------ 1 root root 64 Dec  3 09:36 1 -> /dev/pts/0
    lrwx------ 1 root root 64 Dec  3 09:36 2 -> /dev/pts/0
    lr-x------ 1 root root 64 Dec  3 09:36 3 -> /dev/tty
    lr-x------ 1 root root 64 Dec  3 09:36 4 -> /tmp/test.txt (deleted)
    4. 发现了4是软连接到 /tmp/test.txt 文件中的

    cat 4 即可找到删除的文件内容

    以下是/proc目录中进程N的信息

    /proc/N/cmdline 进程启动命令
    /proc/N/cwd 链接到进程当前工作目录
    /proc/N/environ 进程环境变量列表
    /proc/N/exe 链接到进程的执行命令文件
    /proc/N/fd 包含进程相关的所有的文件描述符
    /proc/N/maps 与进程相关的内存映射信息
    /proc/N/mem 指代进程持有的内存,不可读
    /proc/N/root 链接到进程的根目录
    /proc/N/stat 进程的状态
    /proc/N/statm 进程使用的内存的状态
    /proc/N/status 进程状态信息,比stat/statm更具可读性
    /proc/self 链接到当前正在运行的进程

    转载于:https://my.oschina.net/linuxprobe16/blog/2873171

    展开全文
  • 导读 许多情况下,删除的文件都可以恢复,比如在该文件有...这正是我们恢复仍在运行的进程中(具有PID)已删除的文件所需要的东西。这里就是介绍我们如何做到这一点的。 假设你打开了一个压缩文件,之后你删除

    导读 许多情况下,删除的文件都可以恢复,比如在该文件有活动的进程在操作它,并且目前被单个或多个用户使用时。在 Linux 系统中,每个当前正在运行的进程都会获得 ID,其被称之为进程标识符 “PID”,并将它们存放在 /proc 目录中。这正是我们恢复仍在运行的进程中(具有PID)已删除的文件所需要的东西。这里就是介绍我们如何做到这一点的。

    假设你打开了一个压缩文件,之后你删除了这个文件。为了演示目的,压缩文件称为 “opengapps.zip”,这将是之后我们将打开和删除的文件。

    计算原始文件的 MD5 哈希

    删除之前,我们将计算该文件的 MD5。这样我们可以将原来的 MD5 哈希值与恢复文件的 MD5 哈希进行比较。这个过程将保证我们恢复的压缩文件的完整性是一样的,它没有被破坏。

    md5sum opengapps.zip >> md5-opengapps.txt

    要显示文本文件的内容。

    cat md5-opengapps.txt
    86489b68b40d144f0e00a0ea8407f7c0 opengapps.zip

    检查压缩文件的 MD5 哈希值之后。我们将压缩文件保持打开(LCTT 译注:此处是使用 file-roller 这个图形界面的解压程序保持对该压缩文件的打开,其内置在 GNOME 环境中;在桌面环境中,使用桌面工具打开一个压缩包也能起到同样的作用。又及,本文举例不是很恰当,如果是删除了某个服务进程的已经打开的配置文件,那么这种恢复就很有意义),并将其删除。之后,我们将从文件的恢复过程开始,步骤如下:

    rm opengapps.zip

    删除文件的恢复过程
    正如我们前面提到的,运行的进程在 /proc 目录中。我们可以使用以下命令搜索该目录中需要的进程:

    由于我们已经知道文件名包括 .zip 扩展名,因此我们可以使用 .zip 扩展名进行搜索。它将限制输出结果并显示所需的进程。

    ps -axu | grep .zip
    m 13119 0.8 1.0 121788 30788 ? Sl 06:17 0:00 file-roller /home/m/Downloads/Compressed/opengapps.zip
    m 13164 0.0 0.0 5108 832 pts/20 S+ 06:18 0:00 grep --color=auto .zip

    然后我们将进入到包含 PID 13119 的目录并打开 fd 子目录。

    cd /proc/13119/fd

    fd (文件描述符)目录包含多个文件,包括我们需要恢复的文件。该文件以硬链接的方式链接到原始文件。 fd 目录中的所有文件都以数字链接到“文件名”。因此,要确定这些文件中的哪一个链接到该原始文件,我们将用详细列表选项列出 /fd 目录。

    ls -l
    total 0
    lr-x------ 1 m m 64 Jul 14 06:17 0 -> /dev/null
    lrwx------ 1 m m 64 Jul 14 06:17 1 -> socket:[26161]
    lrwx------ 1 m m 64 Jul 14 06:17 10 -> anon_inode:[eventfd]
    lr-x------ 1 m m 64 Jul 14 06:17 11 -> anon_inode:inotify
    lrwx------ 1 m m 64 Jul 14 06:17 12 -> socket:[5752671]
    lr-x------ 1 m m 64 Jul 14 06:17 13 -> /home/m/Downloads/Compressed/opengapps.zip (deleted)
    lrwx------ 1 m m 64 Jul 14 06:17 2 -> socket:[26161]
    lrwx------ 1 m m 64 Jul 14 06:17 3 -> anon_inode:[eventfd]
    lrwx------ 1 m m 64 Jul 14 06:17 4 -> anon_inode:[eventfd]
    lrwx------ 1 m m 64 Jul 14 06:17 5 -> socket:[5751361]
    lrwx------ 1 m m 64 Jul 14 06:17 6 -> anon_inode:[eventfd]
    lrwx------ 1 m m 64 Jul 14 06:17 7 -> anon_inode:[eventfd]
    lrwx------ 1 m m 64 Jul 14 06:17 8 -> socket:[5751363]
    lrwx------ 1 m m 64 Jul 14 06:17 9 -> socket:[5751365]

    正如你在终端输出中看到的,原始文件 “opengapps.zip” 已被删除,但它仍然链接到一个文件名 13,其进程 PID 13119。但是,我们仍然可以通过将链接的文件复制到安全的地方来恢复它。

    cp 13 /home/m/Downloads/Compressed

    文件复制后。我们将返回包含恢复文件的目录,并使用以下命令重命名它。

    mv 13 opengapps-recovered.zip

    计算恢复文件的 MD5 哈希
    由于我们已经恢复了该文件。让我们检查该文件的完整性,这只是为了确保文件没有损坏,并且和原来一样。早先我们保存了原始文件的 MD5 哈希值。

    md5sum opengapps-recovered.zip >> md5-opengapps.txt

    该命令将检查文件的 MD5 哈希值,并在文件中追加新恢复文件的 MD5 哈希值,以轻松比较两个 MD5 哈希值。

    可以显示文本文件的内容来比较原始文件和恢复文件的 MD5 哈希值。

    cat md5-opengapps.txt
    86489b68b40d144f0e00a0ea8407f7c0 opengapps.zip
    86489b68b40d144f0e00a0ea8407f7c0 opengapps-recovered.zip

    恢复文件的 MD5 哈希是一样的。所以,我们成功地恢复了我们以前删除的文件,并且恢复后文件完整性一致,并且工作正常。

    注意: 在某些情况下,某些文件无法通过 ps -axu 命令看到。 所以,尝试检查运行的程序,并从中恢复文件。

    假设我们有一个使用 Totem 媒体播放器播放中的以 .avi 为扩展名的视频。你需要做的就是检查 Totem 的 PID,并按照本示例中提到的相同说明进行操作。

    要查找正在运行的程序的 PID,请使用以下命令,后面跟程序的名称。

    pidof 程序名


    本文转载自:http://www.linuxprobe.com/linux-deleted-file.html

    免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/


    展开全文
  • 2、如何删除 如果是没有打开的文件使用 rm 如果是正在被使用的文件,并且打开文件的程序不能被kill 如果使用rm后磁盘还是没有变化使用 lsof | gerp deleted 查看需要被删除的文件被那些进程打开 然后使用截断将文件...

    linux中如果磁盘满了,删除较大文件的步骤
    1、查找较大文件
    find / -type f -size +500M 查找大于500mb的文件
    2、如何删除
    如果是没有打开的文件使用 rm
    如果是正在被使用的文件,并且打开文件的程序不能被kill
    如果使用rm后磁盘还是没有变化使用
    lsof | gerp deleted 查看需要被删除的文件被那些进程打开
    然后使用截断将文件截断,释放内存
    > /proc/16295/fd/5 其中16295是pid 5是fd
    查找fd使用 lsof -p pid 会列出进程打开的所有fd
    如果可以找到文件直接使用截断
    > /xxx.xx 文件的路径

    查看文件
    ls -lh 列出文件大小并带有单位
    ls -l --block-size=k/m/g以不同的单位进行显示
    参考的文档:
    https://unix.stackexchange.com/questions/68523/find-and-remove-large-files-that-are-open-but-have-been-deleted

    展开全文
  • 结论:肯定是会出问题,很慢,进程会挂起,消耗很长时间 解决办法: 咨询了公司运维同学,得出了rsync命令 效果:成功解决,消耗时常 5分钟。处理过程,服务器很卡顿,但是基本还是能够访问,能够操作,延时...
  • 本文和大家分享的主要是linux操作系统使用lsof命令恢复删除的文件相关知识,一起来看看吧,希望对大家有所帮助。  lsof命令  lsof命令用于查看你进程开打的文件,打开文件的进程进程打开的端口(TCP、UDP...
  • 1、打开任务管理器; 2、选择下方--打开资源监视器; 3、选择上方--CPU选项 ...4、在下方关联的句柄右侧--搜索框内...5、找到你要删除的文件或文件夹,右键选择结束进程; 6、这样就能顺利删除文件/文件夹了!...
  • 在执行该操作时涉及到了文件删除的原理与符号链接和硬链接知识 1.在linux系统,连接分为两种,一种是被称为硬链接(hard link),另一种被称为符号连接或是软连接(symbolic link) 2.默认不带参数情况下,ln...
  • 相信大家都遇到过要删除某个文件时,提示"该文件正被别的进程使用,不能删除"情况,通常方法是关闭使用该文件的程序或在任务管理器杀死相关进程后,删除。可如果这样也不能删除呢?这时,你可以试试下面方法...
  • 僵尸进程如何删除僵尸进程

    千次阅读 2014-03-20 20:15:53
    在linux系统,在每个进程退出的时候,内核释放该进程所有的资源,包括打开的文件,占用的内存等。但是仍然为其保留一定的信息(包括进程号the process ID,退出状态the termination status of the process,运行...
  • 作为一个多用户、多任务的操作系统,Linux下的文件一旦被删除,是难以恢复的。尽管删除命令只是在文件节点删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据。不过,对于...
  • 因为该功能会在我们访问avi文件时,自动调用windows7系统下载系统Explorer.exe进程来预览该文件内容,要是avi文件本身有问题或在访问过程突然终止操作导致该文件不完整话,Windows XP系统就容易在预览过程...
  • windows系统当我们在删除某个文件或文件夹时有时会提示该文件有程序在使用不能被删除,这时相当惆怅。...在下面就会列出来占用该文件的进程名,右键该进程单击“结束进程”,OK,可以删除了 测试成...
  • 如何删除服务器出现.nfs文件

    千次阅读 2019-05-27 17:06:05
    在远程调试的过程删除了一个正在调试的文件,之后就出现了.nfs文件,然后手动删除此文件,出现以下错误: rm: cannot remove '.nfs00000000053ab2460000001e': Device or resource busy 原因是因为有进程正在...
  • https://www.zhihu.com/video/943869669451567104你是不是总遇到一些不能删除的文件或者文件夹?今天我们要讲的就是这个。如果你电脑上有360安全卫士或者一些其他类似软件,可以直接使用文件粉碎机试试。另外,你还...
  • 在 Windows 平台上操作时,我们经常会因为某些意外操作而导致文件被死锁在某个进程下而无法释放,比如我们执行了某个安装程序后当删除该程序时提示无法完成该操作,因为该文件正被其他程序所使用,等等诸如此类...
  • 如何删除电脑正在运行的文件

    千次阅读 2019-12-08 09:55:52
    在电脑的搜索栏,搜索资源监视器。 在资源监视器中的CPU列,搜索正在打开,或者正在打开关联的文件。 点击需要结束的教程,尽可能结束进程树,这样可以结束该文件关联的一些细琐的文件。 ...
  • https://www.zhihu.com/video/943869669451567104你是不是总遇到一些不能删除的文件或者文件夹?今天我们要讲的就是这个。如果你电脑上有360安全卫士或者一些其他类似软件,可以直接使用文件粉碎机试试。另外,你还...
  • 由于运维人员提示磁盘预警,外加之前没有SqlAnyWhere数据库日志文件处理经验,在杀掉dbservice进程后直接删除了.log,下面会讲解如何重新创建.log。 ## 首先打开命令窗口(win+r)输入cmd 进入SqlAnyWherebin...
  • 概述在windows操作系统,有时我们关闭程序后,一些相关的进程仍在后台运行,并访问着一些文件,使得我们无法对这些文件及其所属文件夹进行删除、重命名等操作。此时,如果知道这个文件/文件夹正在被哪个进程使用...
  • 概述在windows操作系统,有时我们关闭程序后,一些相关的进程仍在后台运行,并访问着一些文件,使得我们无法对这些文件及其所属文件夹进行删除、重命名等操作。此时,如果知道这个文件/文件夹正在被哪个进程使用...
  • 作为一个多用户、多任务的操作系统,Linux下的文件一旦被删除,是难以恢复的。尽管删除 命令只是在文件节点删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据。不过,对于...
  • 如何使用lsof命令恢复已删除的文件? 在Linux文件系统,文件实际上是指向索引节点的链接,该索引节点包含文件的属性,例如所有权,权限,数据块的地址等。当使用rm命令删除文件时,将删除指向其索引节点的链接,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 486
精华内容 194
关键字:

如何删除进程中的文件