当前位置:  技术问答>linux和unix

天啊,我把公司服务器(Linux)里的一些文件给误删除了,怎么办!!

    来源: 互联网  发布时间:2015-02-03

    本文导语:  公司服务器是linux系统,我今天不小心把不少资料、程序(PHP的)给删了,现在才发现其他部门还需要,请问我怎么在linux下恢复啊!大家快帮帮我啊,在线等待!! 哪位兄弟行行好,告诉我方法啊,小弟在此谢过啊...

公司服务器是linux系统,我今天不小心把不少资料、程序(PHP的)给删了,现在才发现其他部门还需要,请问我怎么在linux下恢复啊!大家快帮帮我啊,在线等待!!

哪位兄弟行行好,告诉我方法啊,小弟在此谢过啊!!

|
确信你对文件有修改的权限,如果没有,删除仅仅是表面文章。如果有在linux下(在linux没有重启之前),查看Trash文件夹下有没有你删除的文件。如果没有,在tmp文件夹下看看,如果还没有,俺就over了!

|
删掉文件其实只是将指向数据块的索引点 (information nodes) 释放,只要不被覆盖,数据其实还在硬盘上,关键在于找出索引点,然后将其所指数据块内的数据抓出,再保存到另外的分区。

    我先在网上查有关 linux undelete 的信息,找到一个 ext2fs-undeletion 的mini-Howto,后发觉在RH6.2的 /usr/doc/HOWTO 内也有,按它的方法,先将被删掉数据的盘区 umount 掉(防止写盘覆盖被删除的数据,显然这一步在误删数据后做得越快越好,尤其是对多人使用的计算机),然后查文件系统中哪些索引点最近被释放:

   #debugfs /dev/hda6 (my 'home' partition)
   debugfs: lsdel

即给出相应信息,包括索引点,文件属主,大小,删除日期等。也可将结果输出到一个文件中

   debugfs: quit
   # echo lsdel | debugfs /dev/hda6 > lsdel.out

还可用 debugfs 中 stat 查看某一索引点的详细信息:

       debugfs: stat 

    尤其注意其数据块是否连续!

    然后将该索引点所指数据块内的数据抓出并存到另一盘区:

       debugfs: dump  /dosd/tmp/recovered.001

   按该 mini-Howto 的说法,以上方法只使用于大小不超过 12 个 block 的文件,对于超过 12 个 block 的文件,由于 unix 是将数据分段保存的,需要将各段数据分别取出再拼接,所以比较麻烦。但我用 stat 检查的结果,大文件的数据块也都是紧挨着的,并没有被分段, 于是我试着用同样的方法将文件 dump 出来,发觉结果完全正确,对六百多兆的大文件也适用!不知道 linux 就是连续保存文件的,还是因为我的计算机只有我一个用户而使然,反正我用上述简单方法将我误删的绝大部分文件都恢复了。

    需要说明的一点是,恢复的文件是没有保留文件名的,需要你查看文件内容后,再重新命名。

    靠人不如靠己,当初没有轻易放弃看来是正确的,尽管我有少量备份。不过经过这场"灾难",本人的指法倒是又熟练了不少:几千个文件得一个一个恢复!

|
我想你已经看过这篇文章了
http://bbs.sjtu.edu.cn/cgi-bin/www3/bbsgcon?board=GNULinux&file=G.1029255836.A&num=616


饮水思源 -- 文章阅读 [讨论区: GNULinux]
--------------------------------------------------------------------------------
发信人: ccdcn (祝福受伤的mm), 信区: GNULinux
标  题: Linux文件系统的反删除方法              Altmayer (转寄)(转载)
发信站: 饮水思源 (2002年08月14日00:23:56 星期三), 站内信件

【 以下文字转载自 ccdcn 的信箱 】
【 原文由 Altmayer.bbs@lostemple.dhs.org 所发表 】
来  源: from altmayer.dhs.org ([211.80.41.106])
日  期: Tue Mar 26 00:07:17 2002

www.linuxbyte.net

Linux文件系统的反删除方法

2001-07-25 15:52
发布者:byeyear 阅读次数:16

作为一个多用户、多任务的操作系统,Linux下的文件一旦被删除,是难以恢复的
。尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他
用户和一些有写盘动作的进程会很快覆盖这些数据。不过,对于家庭单机使用的
Linux,或者误删文件后及时补救,还是可以恢复的。

1.Ext2文件系统结构的简单介绍

在Linux所用的Ext2文件系统中,文件是以块为单位存储的,默认情况下每个块的
大小是1K,不同的块以块号区分。每个文件还有一个节点,节点中包含有文件所有
者,读写权限,文件类型等信息。对于一个小于12个块的文件,在节点中直接存储
文件数据块的块号。如果文件大于12个块,那么节点在12个块号之后存储一个间接
块的块号,在这个间接块号所对应的块中,存储有256个文件数据块的块号(
Ext2fs中每个块号占用4字节,这样一个块中所能存储的块号就是1024/4=256)。
如果有更大的文件,那么还会在节点中出现二级间接块和三级间接块。

2。恢复被误删文件的方法

大多数Linux发行版都提供一个debugfs工具,可以用来对Ext2文件系统进行编辑操
作。不过在使用这个工具之前,还有一些工作要做。
首先以只读方式重新挂载被误删的文件所在分区。使用如下命令:(假设文件在
/usr分区)
mount –r –n –o remount /usr
-r表示只读方式挂载;-n表示不写入/etc/mtab,如果是恢复/etc上的文件,就加
上这个参数。如果系统说xxx partion busy,可以用fuser命令查看一下是哪些进
程使用这个分区上的文件:
fuser –v –m /usr
如果没有什么重要的进程,用以下命令停掉它们:
fuser -k –v –m /usr
然后就可以重新挂载这些文件系统了。
如果是把所有的文件统一安装在一个大的/分区当中,可以在boot提示符下用linux
 single进入单用户模式,尽量减少系统进程向硬盘写入数据的机会,要不干脆把
硬盘挂在别的机器上。另外,恢复出来的数据不要写到/上面,避免破坏那些有用
的数据。如果机器上有dos/windows,可以写到这些分区上面:
mount –r –n /dev/hda1 /mnt/had
然后就可以执行debugfs:(假设Linux在 /dev/hda5)
#debugfs /dev/hda5
就会出现debugfs提示符debugfs:
使用lsdel命令可以列出很多被删除的文件的信息:
debugfs:lsdel
debugfs: 2692 deleted inodes found.
Inode Owner Mode Size Blocks Time deleted
164821 0 100600 8192 1/ 1 Sun May 13 19:22:46 2001
…………………………………………………………………………………
36137 0 100644 4 1/ 1 Tue Apr 24 10:11:15 2001
196829 0 100644 149500 38/ 38 Mon May 27 13:52:04 2001

debugfs:
列出的文件有很多(这里找到2692个),第一字段是文件节点号,第二字段是文件
所有者,第三字段是读写权限,接下来是文件大小,占用块数,删除时间。然后就
可以根据文件大小和删除日期判断那些是我们需要的。比如我们要恢复节点是
196829的文件:
可以先看看文件数据状态:
debugfs:stat 
Inode: 196829 Type: regular Mode: 0644 Flags: 0x0 Version: 1
User: 0 Group: 0 Size: 149500
File ACL: 0 Directory ACL: 0
Links: 0 Blockcount: 38
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x31a9a574 -- Mon May 27 13:52:04 2001
atime: 0x31a21dd1 -- Tue May 21 20:47:29 2001
mtime: 0x313bf4d7 -- Tue Mar 5 08:01:27 2001
dtime: 0x31a9a574 -- Mon May 27 13:52:04 2001
BLOCKS:
594810 594811 594814 594815 594816 594817 ………………………………….
TOTAL: 38
然后就可以用dump指令恢复文件:
debugfs:dump  /mnt/hda/01.sav
这样就把文件恢复出来了。退出debugfs:
debugfs:quit
另一种方法是手工编辑inode:
debugfs:mi 
Mode [0100644]
User ID [0]
Group ID [0]
Size [149500]
Creation time [0x31a9a574]
Modification time [0x31a9a574]
Access time [0x31a21dd1]
Deletion time [0x31a9a574] 0
Link count [0] 1
Block count [38]
File flags [0x0]
Reserved1 [0]
File acl [0]
Directory acl [0]
Fragment address [0]
Fragment number [0]
Fragment size [0]
Direct Block #0 [594810]
…………………………….
Triple Indirect Block [0]
使用mi指令后每次显示一行信息以供编辑,其它行可以直接按回车表示确认,把
deletion time改成0(未删除),Link count改成1。改好后退出debugfs:
debugfs:quit
然后用fsck检查/dev/hda5
fsck /dev/hda5
程序会说找到丢失的数据块,放在lost+found里面。这个目录里的文件就是我们要
的东东。
Now all O.K. Good Luck. 
--
※ 转寄:·失落的神殿 lostemple.dhs.org·[FROM: 失落的神殿]
--
※ 转载:·饮水思源 bbs.sjtu.edu.cn·[FROM: 202.120.56.39]


|
Up

惨,惨,惨,Linux的inode一旦被释,放好像是没有办法回复的!

|
easy.....

软件简介 
是威力非常强大的硬盘数据恢复工具。能够帮你恢复丢失的数据以及重建文件系统。EasyRecovery不会向你的原始驱动器写入任何东东,它主要是在内存中重建文件分区表使数据能够安全地传输到其他驱动器中。你可以从被病毒破坏或是已经格式化的硬盘中恢复数据。该软件可以恢复大于8.4GB的硬盘。支持长文件名。 被破坏的硬盘中像丢失的引导记录、BIOS参数数据块;分区表;FAT表;引导区都可以由它来进行恢复。
http://www8.pconline.com.cn/download/swdetail.phtml?id=2446

这招救不了就没救了  

 

|
怎么个删除法?

|
如果你对linux服务器确实有删除权限的话,那没办法了。
不过一般不会有吧?

|
楼上的方法看来是不行了。

EasyRecover 数据恢复版本:
1.最新支持Windows2000、WindowsNT、WindowsXP
2.可选择FTP为拷贝的目标
3.数据恢复包括微软Word、Winzip文件的修复
4.可以从CompactFlash卡、SmartMedia卡、记忆棒、移动硬盘以及软盘上恢复数据
5.可成生恢复报告
6.提升了文件搜索功能,支持超过90种的文件类型
7.可根据指定要求进行高级搜索
EasyRecovery 文件修复版:增加了对微软PowerPoint、Outlook、Excel、Access和Word
EasyRecovery 专业版

|
这位兄台是怎么删的
rm -f xx.xx
还是用windows的del(samba 服务器上的文件)

|
LINUX硬盘分区用的什么格式?可以挂到其他机子上用EASYRECOVER 试一下。

|
同意楼上的.

|
最完美的办法,重新做程序拉,还有一次锻炼的机会吗。

|
完了,辞职。

|
gz

|
(我是菜鸟):Windows能远程删除服务器Linux上的文件吗??

|
死活不承认是你删除的.

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 公司需要DNS服务器吗,如果有是对公司内部服务还是对公网?
  • UNIX服务器连接公司局域网和INTERNET,如果要阻止公司内部访问QQ、MSN之类的使用是不是用iptables阻止端口?
  • 对于邮件服务器更换中,2台邮件服务器同时运行,有何策略?公司实例
  • 那个公司的linux服务器版比较好?
  • 一般的公司后台用什么服务器?
  • 要购买大型服务器及操作系统,请介绍有关解决方案,比如sun、ibm、惠普等公司!!!!!
  • 请大家推荐一款 Linux Server 版的,支持 epoll,并且很稳定的版本,公司的服务器里用!
  • 公司服务器linux+tomcat一直正常,突然变慢。
  • 刚接触linux,公司要一个web服务器和一个数据库服务器,请问现在用linux哪个版本好,给点建议吧
  • 请问一下,大家所在的公司或者单位的服务器都用得什么操作系统?
  • 紧急求救!公司有2个宽带IP+一台装了linux的网络服务器,请教大家配置方面的问题。
  • 我公司只有一个21CN的邮箱,想用一台服务器把邮件收下来,然后再让局域网的机器收看,局域网的机器可以收发邮件,这台服务器该怎样配置?
  • 出于降低软件成本考虑,文件服务器能不能用Linux Fedora2/3? 公司百来台计算机,以后会较快增加。Linux是否支持S-ATA 或SCIC接口硬盘,最
  • 公司的服务器,Linux +tomcat+JSP,一直运行的好好的,突然就出现CPU占用率100%的情况
  • mongodb是哪个公司的以及它的内部构造
  • 我们公司在局域网中,通过Cisco路由器接DDN,连接总公司.win98可以ping到总公司路由器,但是用了win2k专业版就只能在局域网内ping,数据报出
  • 有谁了解“江苏新晨信息科技发展有限公司”吗,公司怎么样?
  • 大连的C/LINUX程序员请进!你们在那个公司?小弟想投奔,但是苦于没有公司招聘。
  • 在公司注册时,如何自动生成公司的编号?及通常的COMPANY_ID??
  • 请教各位 我将来想从事嵌入式linux方面的工作。 如果我学好ARM+linux后从事那些行业的工作更好呢? 或者进那些公司更有前途呢?那些公司更适合我呢?
  • 求救:我应聘一家公司,老板出的题目是在Linux下用浏览器观看word或execl,我只需要一点资料先应付过去,或者一点思路也可以。这家公司我
  • 打倒杭州(萧山)时比特公司!!!!!!!!!
  • 在南京的兄弟过来看一下,我们公司在招聘。
  • 德国母公司寻求国内软件开发合作伙伴
  • 推荐几个嵌入式行业的公司吧
  • 用UNIX/Linux开发的公司,面试都问些啥????
  • 我公司想上OA软件,谁能给我点好建议吗?
  • 网上下载的redhat可不可以在公司里用?需要lisence吗?
  • 惠通公司诚聘
  • 哪家公司提供嵌入式Linux手机研发平台?
  • 在公司编java程序用什么工具


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3