电脑lr文件删除怎么样找回(系统运维数据存储知识-系统数据误删除恢复)
本文目录
利用Linux系统软件恢复数据-lsof利用Linux系统软件恢复数据-extundelete操作系统数据误删除恢复方法
在任何企业环境中,系统中所存储的数据信息都是至关重要,因此如果不小心删除了重要文件,轻则会给系统服务运行带来影响,重则会给整个公司企业带来重大的经济损失,所以在删除文件数据时必须谨慎的操作。但是,正所谓常在河边走,哪有不湿鞋的,有时候墨菲定律就是常出现在我们的生活中,越不想发生的事,越可能出现。在应对数据不小心误删除情况时,类似于windows系统误删了文件,可以使用一些软件进行恢复操作。同样,Linux也是有几款软件可以做到误删除软件之后的数据恢复,本文就给大家介绍几种亲测有效的数据误删除恢复方式。
注意事项:
虽然有软件可以对误删的数据进行恢复,但是完全恢复数据的概率并不是百分百的。因此,使用rm命令删除文件的时候,建议大家做好以下几点。
重要的数据在进行编辑修改时,一定要有备份数据信息;在无用数据文件信息进行删除操作时,建议可以先放入临时目录几天,系统服务运行无影响后再删除清理磁盘空间;一旦误操作删除数据时,恢复删除的数据前,删除文件的目录内不能往进存放新东西,否则覆盖掉的信息无法找回1.利用Linux系统软件恢复数据-lsof
lsof(listopenfiles)是一个查看进程打开的文件的工具。在linux系统中一切皆文件,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以lsof命令不仅可以查看进程打开的文件、目录,还可以查看进程监听的端口等socket相关的信息。
1.1恢复数据原理介绍
这个命令实际上并不能直接用来恢复文件,不过它可以列出被各种进程打开的文件信息。配合其他命令,从/proc目录下的信息中恢复已删除的文件,但能恢复的文件必须是被进程调用打开的状态。
/proc目录是挂载的是在内存中所映射的一块区域,当我们对这些文件进行读取和写入时,实际上是在从内存中获取相关信息。因此,当我们对文件进行读取或写入时(即有进程正使用文件时),哪怕硬盘中的该文件已删除,还可以从内存中的信息恢复文件。
注意事项:必须以root用户的权限运行,因为lsof需要访问核心内存和各种文件;只能恢复“文件已删除,但进程仍保持打开该文件的状态”的文件;如果误删了目录,目录中的其他文件未被进程打开,没有进行使用的文件将无法使用此方法恢复。1.2命令操作输出信息
[root@web01~]#lsof|head-n10COMMANDPIDTIDUSERFDTYPEDEVICESIZE/OFFNODENAMEsystemd1rootcwdDIR8,3409664/systemd1rootrtdDIR8,3409664/systemd1roottxtREG8,3161215234018594/usr/lib/systemd/systemdsystemd1rootmemREG8,32006445721/usr/lib64/libuuid.so.1.3.0systemd1rootmemREG8,326560048715/usr/lib64/libblkid.so.1.1.0systemd1rootmemREG8,390248747862/usr/lib64/libz.so.1.2.7systemd1rootmemREG8,315742448741/usr/lib64/liblzma.so.5.2.2systemd1rootmemREG8,32396849064/usr/lib64/libcap-ng.so.0.0.0systemd1rootmemREG8,31989648599/usr/lib64/libattr.so.1.1.0
以上命令输出信息,各列代表含义解释说明:
编号信息各列信息含义解释①COMMAND服务进程名称信息②PID服务进程PID编号信息③TID服务线程TID编号信息④USER服务进程管理者用户信息⑤FD用来识别该文件,文件描述符信息⑥TYPE用来识别该文件所属类型⑦DEVICE指定设备存储编号信息⑧SIZE指定文件的大小信息⑨NODE索引节点信息,文件在磁盘上的标识⑩NAME具体打开文件的路径和确切名称
此命令长使用参数介绍:
编号信息参数信息参数解释①-c显示某进程现在打开的文件②-p显示哪些文件被某pid进程打开③-g显示归属某pgid的进程情况④-d显示目录下被进程开启的文件⑤-i显示打开指定端口的进程
1.3系统恢复文件操作
环境准备阶段:
准备恢复数据的环境,在/test/目录创建一个文件oldboy.txt,其中一个远程连接会话窗口在编辑查看此文件,然后另一个终端将其删除
A窗口ssh连接会话中,准备出要准备删除的数据信息,并同时查看打开文件
[root@web01~]#mkdir/test/在/var/spool/mail/root中有邮件[root@web01~]#touch/test/oldboy.txt[root@web01~]#echooldboyedu.com>/test/oldboy.txt[root@web01~]#less/test/oldboy.txtoldboyedu.com/test/oldboy.txt(END)
B窗口ssh连接会话中,查看被加载的文件进程信息
[root@web01~]#lsof-clessCOMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAME---部分无关信息省略---less28025root4rREG8,31468076441/test/oldboy.txt
将打开文件进行删除,查看打开文件状态信息,发现进程加载的文件显示deleted信息,目录下已经不存在被删除的文件数据
[root@web01~]#rm-f/test/oldboy.txt[root@web01~]#lsof-clessCOMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAME---部分无关信息省略---less28025root4rREG8,31468076441/test/oldboy.txt(deleted)[root@web01~]#ll/test总用量0数据恢复阶段:
切换到/proc下,删除文件对应的进程的pid下的文件描述符中的目录中;将对应的内容重定向或cp到其他文件中,重点关注:PID与FD。
[root@web01fd]#cd/proc/28025/fd/[root@web01fd]#cat4oldboyedu.com[root@web01fd]#ll总用量0lrwx------.1rootroot649月2822:030->/dev/pts/1lrwx------.1rootroot649月2822:031->/dev/pts/1lrwx------.1rootroot649月2822:032->/dev/pts/1lr-x------.1rootroot649月2822:033->/dev/ttylr-x------.1rootroot649月2822:034->/test/oldboy.txt(deleted)[root@web01fd]#cat4oldboyedu.com[root@web01fd]#cat4>/test/oldboy.txt_recovery[root@web01fd]#cat/test/oldboy.txt_recoveryoldboyedu.com
至此,丢失数据信息恢复完毕
2.利用Linux系统软件恢复数据-extundelete
Extundelete是在Linux下,基于开源的数据恢复工具。使用阿里云的云服务器ECS,您可以方便地安装,及时还原误删除的重要文件。
2.1恢复数据原理介绍
extundelete恢复文件时并不依赖特定文件格式,首先extundelete会通过文件系统的inode信息,来获得当前文件系统下所有文件的信息,包括存在的和已经删除的文件,这些信息包括文件名和inode。然后利用inode信息结合日志去查询该inode所在的block位置,包括直接块,间接块等信息。最后利用dd命令将这些信息备份出来,从而恢复数据文件。相比于另一种ext3grep数据恢复软件只能恢复ext3文件系统的文件,其适用范围更广,恢复速度更快。
2.2软件部署安装过程
软件安装环境准备
软件名称部署信息链接地址extundelete官方网站地址http://extundelete.sourceforge.net/extundelete程序下载地址https://jaist.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2最新版本的extundelete是0.2.4,于2013年1月发布,暂时未有更新版本
上表中是软件程序的获取方式,可以提前进行下载保存。
注意事项:在数据删除之后,要卸载被删除数据所在的磁盘或是分区如果是系统根分区遭到误删除,就要进入单用户模式,将根分区以只读的方式挂载,尽可能避免数据被覆盖数据被覆盖后无法找回恢复仍有一定的机率失败,平时应对重要数据作备份,小心使用rm软件安装部署过程
解决软件安装依赖关系:
#centos安装操作yuminstall-ye2fsprogs-devele2fsprogs*gcc*#ubuntu安装操作apt-getinstallbuild-essentiale2fslibs-deve2fslibs-dev
软件编译安装部署过程:
wgethttps://jaist.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2tarxfextundelete-0.2.4.tar.bz2cdextundelete-0.2.4./configuremakemakeinstall2.3系统恢复文件操作
执行extundelete命令的当前目录必须是可写的.
查看要恢复文件的分区挂载情况与文件系统类型:
[root@web01~]#df-Th文件系统类型容量已用可用已用%挂载点---部分无关信息省略---/dev/sdb1ext49.8G37M9.2G1%/mnt
在指定分区挂载目录中创建数据信息,并删除:
[root@web01~]#cd/mnt[root@web01mnt]#mkdirtest[root@web01mnt]#echooldboyedu.com>test/oldboy.txt[root@web01mnt]#cattest/oldboy.txtoldboyedu.com[root@web01mnt]#rm-rftest/[root@web01mnt]#echooldboyedu.com>oldboy.txt[root@web01mnt]#rm-foldboy.txt
将要恢复文件的分区进行卸载操作:
[root@web01~]#umount/mnt
查看可以恢复的数据
#指定误删除文件的分区进行查找,最后一列标记为delete的文件,即为删除了的文件Filename|Inodenumber|Deletedstatus.2..2lost+found11test393217Deletedoldboy01.txt12Deleted
恢复单个目录
#指定要恢复的目录名,如果是空目录则不会恢复extundelete/dev/vdb1--restore-directorytest
当执行恢复文件的命令后,会在执行命令的当前的目录下生成RECOVERED_FILES目录,恢复的文件都会放入此目录中。如未生成目录即为失败。恢复单个文件
#指定要恢复的文件名,如果几k大小的小文件,有很大几率恢复失败extundelete/dev/vdb1--restore-fileoldboy01.txt
恢复全部删除的文件
#无需指定文件名或目录名,恢复全部删除的数据extundelete/dev/vdb1--restore-all
原文链接:https://www.cnblogs.com/oldboy-heqing/articles/13744890.html