美国主机商hostease的文件linux 误删文件恢复可以恢复吗?

一次心惊肉跳的服务器误删文件的恢复过程 - 文章 - 伯乐在线
& 一次心惊肉跳的服务器误删文件的恢复过程
经历了两天不懈努力,终于恢复了一次误操作删除的生产服务器数据。对本次事故过程和解决办法记录在此,警醒自己,也提示别人莫犯此错。也希望遇到问题的朋友能找到一丝灵感解决问题。
安排一个妹子在一台生产服务器上安装Oracle,妹子边研究边安装,感觉装的不对,准备卸载重新安装。从网上找到卸载方法,其中要执行一行命令删除Oracle的安装目录,命令如下:
rm -rf $ORACLE_BASE/*
rm -rf $ORACLE_BASE/*
如果ORACLE_BASE这个变量没有赋值,那命令就变成了
==||,妹子使用的可是root账户啊。就这样,把整个盘的文件全部删除了,包括应用Tomcat、MySQL数据库 and so on……
(mysql数据库不是在运行吗?linux 能删除正在执行的文件?反正是彻底删除了,最后还剩一个tomcat的log文件,估计是文件过大,一时没有删除成功)
看着妹子自责的眼神,又是因为这事是我安排她做的,也没有跟她讲清厉害关系,没有任何培训,责任只能一个人背了,况且怎么能让美女背负这个责任呢?
打电话到机房,将盘挂到另一台服务器上,ssh上去查看文件全部被清,这台服务器运行的可是一个客户的生产系统啊,已经运行大半年了,得尽快恢复啊。于是找来脱机备份的数据库,发现备份文件只有1kb,里面只有几行熟悉的mysqldump注释(难道是crontab执行的备份脚本有问题),最接尽的备份也是2013年12月份的了,真是屋漏偏逢连夜雨啊。
想起来一位领导说过的案例:当一个生产系统挂掉以后,发现所有备份都有问题,刻录的光盘也有划痕,磁带机也坏了(一个业界前辈,估计以前还用光盘做备份了),没想到今天真的应验到我的身上了,怎么办??
部门领导知道情况后,已经做了最坏的B计划:领导亲自带队和产品AA周日赶到客户所在的地市,星期一去领导层沟通;BB和CC去客户管理员那边想办法说服客户……
救命稻草–ext3grep
赶快到网上去查资料进行误删数据恢复,还真找到一款ext3grep能够恢复通过 rm -rf 删除的文件,我们磁盘也是ext3格式,且网上有不少的成功案例。于是燃起了一丝希望,赶快对盘umount,防止重新写入补删文件扇区。下载ext3grep,安装(编译安装过程艰辛暂且不表)。
先执行扫描文件名命令:
ext3grep /dev/vgdata/LogVol00 --dump-names
ext3grep /dev/vgdata/LogVol00 --dump-names
打印出了所有被删除文件及路径,心中狂喜,不用执行B计划了,文件都在呢。
这款软件不能按目录恢复文件,只能执行恢复全部命令:
ext3grep /dev/vgdata/LogVol00 --restore-all
ext3grep /dev/vgdata/LogVol00 --restore-all
结果当前盘空间不足,没办法只能恢复文件,尝试了几个文件,居然部分成功部分失败
ext3grep /dev/vgdata/LogVol00 --restore-file var/lib/mysql/aqsh/tb_b_attench.MYD
ext3grep /dev/vgdata/LogVol00 --restore-file var/lib/mysql/aqsh/tb_b_attench.MYD
心里不禁一凉,难道是删除磁盘上被写过文件了?恢复机率不大了啊,能恢复几个算几个吧,说不定重要数据文件刚好在能恢复的MYD文件中。于是先将所有文件名重定向到一个文件文件中
ext3grep /dev/vgdata/LogVol00 --dump-names &/usr/allnames.txt
ext3grep /dev/vgdata/LogVol00 --dump-names &/usr/allnames.txt
过滤出来所有mysql数据库的文件名存成,mysqltbname.txt
编写脚本恢复文件:
while read LINE
echo "begin to restore file " $LINE
ext3grep /dev/vgdata/LogVol00 --restore-file $LINE
if [ $? != 0 ]
echo "restore failed, exit"
done & ./mysqltbname.txt
12345678910
while read LINEdo&&&&echo "begin to restore file " $LINE&&&&ext3grep /dev/vgdata/LogVol00 --restore-file $LINE&&&&if [ $? != 0 ]&&&&then&&&&&&&&echo "restore failed, exit"&&&&&& # exit 1&&&&fidone & ./mysqltbname.txt
执行,大概运行了20分钟,恢复了40多个文件,但不够啊,我们将近100张表,每张表frm,myd,myi三个文件,怎么说也有300多个左右啊!!将找回来的文件附到现有数据库上,更要文件权限为777后,重启mysql,也算是找回一部分数据了,但客户重要的考勤签到数据、手机端上报数据(据说客户按这些数据做员工绩效的)还没找回来啊。
咋 办?中间又试了另一款工具extundelete,跟ext3grep语法基本一致,原理应该也一样了,但是据说能按目录恢复,好吧试一试。
extundelete /dev/vgdata/LogVol00 --restore-directory var/lib/mysql/aqsh
extundelete /dev/vgdata/LogVol00 --restore-directory var/lib/mysql/aqsh
果然不出所料,恢复不出来!!!!!!!!那些文件已被破坏了。跟领导汇报,执行B计划吧。。。无奈之下下班回家(周末了,回去休息一下,想想办法吧)
灵机一动:binlog
第二天早晨一早就醒了(心里有事啊),背上电脑,去公司(这个周末算是报销了,不挨批,通报,罚款,开除就不错了,还过什么周末啊)。
依旧运行ext3grep,extundelete,也就那几招啊,把系统架到测试服务器上,看看数据能不能想办法补一补吧。在测试服务器上进行mysqldump,恢复文件,覆盖恢复回来的文件,给文件加权限,重启mysql。
wait,wait,不是有binlog吗?我们服务都要求开启binlog,说不定能通过binlog里恢复数据呢?
于是从dump出来的文件名里找到binlog的文件,一共三个,mysql-binlog0001,mysql-bin.000009,mysql-bin.000010,恢复一下0001
ext3grep /dev/vgdata/LogVol00 --restore-file var/lib/mysql/mysql-bin.000001
ext3grep /dev/vgdata/LogVol00 --restore-file var/lib/mysql/mysql-bin.000001
居然失败了。。。。。。
再看另两个文件,mysql-bin.000010大概几百MB,应该靠谱一点,执行还原命令,居然成功了!!!!!!!!!!!!!
赶快scp到测试服务器。执行binlog还原。
mysqlbinlog /usr/mysql-bin.000010 | mysql -uroot -p
mysqlbinlog /usr/mysql-bin.000010 | mysql -uroot -p
输入密码,卡住了(好现象),经过漫长的等待,终于结束了。打开应用,哦,感谢cctv,mtv,数据回来了!!!
经过此次事故,虽然数据很幸运能找回来了,但是过程却是惊心动迫。也为自己的错误所带来的后果,给同事和领导带来的连带责任而后怕。也希望谨记此次事故,以后不再犯同样的错误。事故反思如下:
1.本次安排MM进行服务器维护时没有提前对她进行说明厉害情况,自己也未重视,管理混乱,流程混乱。一个在线的生产系统,任何一个改动一定要先谋而后动。
2.自动备份出现问题,没有任何人检查。脱机备份人员每次从服务器上下载1k的文件却从未重视。需要明确大家在工作岗位上的责任。
3.事故发生后,没有及时发现,造成部分数据写入磁盘,造成不可恢复问题。需要编写应用监控程序,服务一旦有异常,短信告警相关责任人。
根据评论提醒,再加一条:
4.不能使用root用户来操作。应该在服务器上开设不同权限级别的用户。
通过本次事故,几位跟这个项目和事故没有任何关系的同事,主动前来帮忙,查资料,帮测试,有一位同事还帮忙到晚上1点多钟进行数据恢复测试。同时产品经理在想到面向客户的巨大压力的情况下,没有慌乱而责怪开发人员和具体操作人,而让大家能静下心来想解决方案。部门领导也积极主动的帮忙想办法,陪我们加班测试,实时跟踪事情进程。
通过大家的共同努力,终于事情相对圆满结束,接下来,周一上午进行集体反思,总结经验教训,这类事故一定尽量大努力进行避免。
/**************************************传送门************************************************/
本文所用到的工具链接:
1.ext3grep:
编译安装依赖包比较多,可以到网上搜索如何安装。可惜的是作者给出的howto被墙了,我FQ将how to 的pdf文档下载下来了,读完后你将会对linux的文件系统有进一步的认识。。
这个工具有一个bug,出错后不会向下执行ext3grep: init_directories.cc:534: void init_directories(): Assertion `lost_plus_found_directory_iter != all_directories.end()’ failed.,从而造成恢复失败,作者放出了一个补丁,下载地址:。不明白为什么作者新版没有把这个补丁加进去。
2.extundelete:
功能跟ext3grep差不多,原理应该也差不多。只是号称可以还原目录,我这里没有试验成功。
【伯小乐补充网友评论】:
这篇文章在「数据库开发」(微信号:DBDevs)和「Linux爱好者」(微信号:LinuxHub)推送后,评论非常激烈。下面摘录一些:
Alex Zheng:
反思还是没有抓住关键问题!这种练手就应该在pc上装一个虚拟机随便折腾,用production server练手以后还得出事!另外ORACLE的安装绝不容易也绝不是用root来安装的,一般都是新建一个oracle用户,组群为dba和oinstall,oracle目录结构要满足OFA标准,设置好环境变量后,run OUI, NETCA , DBCA,其中character set和block size要格外小心设置,所以,新手在linux上装oracle,没人指导没有看书,那几乎百分百会出问题!
fairychild:
我体验过卸载iptables忘加nodeps
不是删除正在执行的文件,而是加了flag同时记数减一,等到所有对这个文件的ref为0才真正干掉
还边研究边安装 用生产环境 用root
夸大了单个binlog文件的作用 单纯的恢复一个binlog日志文件就可以恢复整库数据? 或许只有一个解释说得通 该业务写入量极少 从上线到故障只产生了一个binlog
很奇怪,既然是这么重要的生产环境,竟然还能让新人来练手,竟然还是root
客户的生产系统,厂家工程师居然有root密码,也是醉了
两个月前某省部门也发生过类似事情,一个某厂商新手把某服务器的内容都删除了,还涉及不同厂商的业务系统的数据,当时我没法理解为什么会删掉其它业务系统数据,现在明白了
二十四桥明月夜:
在生产环境试安装oracle,你们就没有个测试环境么,可见你们公司多么不规范,领导有多傻
yi🌸👻:
能写出来警示他人,点赞,这个还是严格规范起来吧,做得专业牛逼对得起团队成员的不指责
视线相接:
误删过,那一瞬间心凉的感觉,感同身受
rm -rf /删过一次,还好是测试机,直接重装了,这命令每次用的吓人
半亩荷塘:
一直要求 rm 文件名 确认 yes
生产服务器还敢一边查资料,一边摸索着弄。真是太大意了,建议安装内网虚拟服务器,这样保证生产安全!mo-呲牙 不过做一次经验教训,也学到了不少东西~还有你们领导和团队真的很棒mo-强mo-强mo-OK
我想说:rf -rm的正确使用方法是“rf 文件名 -rm”,在确认需要删除的文件后输入-rm,然后敲回车,就会避免误删除,这个方法值得推广!
所以 删除时候路径从来不用变量… 还有。脚本CD到目录 然后删除…也要注意,一定要判断是否进入目录。
东虫夏草:
上次在生产和测试数据库之间切换 误以为在测试环境 删除表数据直接用了truncate命令 直接把生产oracle中几张清算表清空了 里面记录着商户账户资金数据 当时脑子真是一片空白 后面幸亏运维同事从oracle文件中恢复过来 从那次后 删数据都是看好几遍 不敢大意
只说一句,直接让一个不熟悉的人在生产上做操作,不专业,作死!
我昨天线上测试,主要看日志记录的内容,关键操作部分要进行注释,结果我少注释了一行代码,就导致线上数据库一天多了一千多条废数据,心情真的是想哭到爆,虽然昨天真的也哭了。。。警告,所有程序员在进行开发的时候,不要思考任何以前的感情相关!!!
你让新手去弄生产服务器,无监管,还给root权限,就是作死。这是最大的问题
有一次,把服务器的配置文件对比成了测试的,当时正式的配置还没有版本控制,结果,当时就一身冷汗,吓死宝宝了
Orclcast:
两件事:生产环境怎么能随便root权限给别人呢!还有每次备份都需要监控的,最近的备份数据居然是3年之前的,真不造你这sa怎么做的!
可能感兴趣的话题
linux下运行的数据库文件如果删除了,通过dbwr判断句柄,然后恢复,这个算是对上面文档一个小补充吧.
关于伯乐在线博客
在这个信息爆炸的时代,人们已然被大量、快速并且简短的信息所包围。然而,我们相信:过多“快餐”式的阅读只会令人“虚胖”,缺乏实质的内涵。伯乐在线内容团队正试图以我们微薄的力量,把优秀的原创文章和译文分享给读者,为“快餐”添加一些“营养”元素。
新浪微博:
推荐微信号
(加好友请注明来意)
– 好的话题、有启发的回复、值得信赖的圈子
– 分享和发现有价值的内容与观点
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 翻译传播优秀的外文文章
– 国内外的精选文章
– UI,网页,交互和用户体验
– 专注iOS技术分享
– 专注Android技术分享
– JavaScript, HTML5, CSS
– 专注Java技术分享
– 专注Python技术分享
& 2017 伯乐在线查看: 1523|回复: 14
大家千万别买HOSTEASE!!!
大家千万别买HOSTEASE,客服说服务器维护,竟然他们官方网站都不事先邮件通知或网站上公告,你们见过哪个空间商现在维护了第四天网站还没恢复的吗?还说不确定时间才能维护好的吗?我个人之前用了4年GODADDY的空间一直都没这样的情况出现过的,想着这里介绍说速度快,就想着换到HOSTEASE这里了用了才2个月,网站在百度的排名和快照都已经逐渐稳定下来了,吗的,这垃圾HOSTEASE一停几天我的站都被百度拔毛了,问他们什么时候就老是说不确定,草,这是人干的事吗,最先百度了那么多HOSTEASE的负面新闻最初还不信,今天我是信了,不知道你们信不信。
本文出自美国主机侦探(www.idcspy.org),转载请注明!
我信。我就是其中之一。我13号18:00左右购买。分配的IP就打不开。问客服说在维护。直到今天21:00左右才算完成。也给我更换了服务器。体验了HOSTEASE上网速度确实是好快。惨的事还在后面,真不知道要不要退款不。帮我更换三次IP全它妈的。三次IP所绑定的几百个网站全是非法网站,真不知道是好。360安全,金山,qq管家全提示非法网站。我这个商城不知道怎么开。你们有什么办法帮我一下吗?另购买IP一年要30美元。
我的站也是,2个米指向到HOSTEASE全部被搜索认为高危网站和含有欺诈,草,真的好垃圾,我很后悔的说
楼主说的是真的,我也是godaddy用户,2月份后来到期了,看介绍说HOSTEASE快,我就买了个最基本套餐,很慢,又升级了一下套餐,还是慢,要求更换服务器还是慢,联系客服退款,百般不想退款给我,让他们发给邮件确认办理退款了,结果没收到邮件,不放心,又让联系的另外一个客服,他让我再换服务器试试,他一会说能查到,一会说没查到退款,很不专业,最后答应再帮我重新申请一下退款。我还跟他们说,我有两笔交易,不要少退了,结果N天后果然发现只退给我一笔款,联系客服说,他问问财务,几天后才把另外一笔款退给我了,很不专业,退款速度慢的要死,godaddy,退款速度快,也不挽留你,扣费合理,例如ssl全款退给我了,也不要求必须申请域名,建议大家用godaddy,我又回到godaddy了
楼主说的是真的,我也是godaddy用户,2月份后来到期了,看介绍说HOSTEASE快,我就买了个最基本套餐,很慢,又升级了一下套餐,还是慢,要求更换服务器还是慢,联系客服退款,百般不想退款给我,让他们发给邮件确认办理退款了,结果没收到邮件,不放心,又让联系的另外一个客服,他让我再换服务器试试,他一会说能查到,一会说没查到退款,很不专业,最后答应再帮我重新申请一下退款。我还跟他们说,我有两笔交易,不要少退了,结果N天后果然发现只退给我一笔款,联系客服说,他问问财务,几天后才把另外一笔款退给我了,很不专业,退款速度慢的要死,godaddy,退款速度快,也不挽留你,扣费合理,例如ssl全款退给我了,也不要求必须申请域名,建议大家用godaddy,我又回到godaddy了
客服居然说从没有客户反映慢,你们相信吗?
顺便提醒一下大家,如果不小心买到godaddy亚太服务器也是很慢的,我开始也是的,后来退款改到美国服务器还算马马马虎虎,虽然慢,但在自己忍受范围内
垃圾HOSTEASE马上第5天了还没恢复,真他妈的垃圾空间
反正现在正在维护,说不定明天就好了,如果转到其他主机商排名还能回来吗,真不知如何是好
现在还没好吗?我的网站都已经恢复正常了。
站长推荐 /4
HostEase速度快,有中文客服和中文站,支持支付宝付款。
GoDaddy最新给力优惠,年付仅需12美元!
RAKsmart上线CN2服务器直连中国电信,为对中美间网络质量要求极高的企业客户及个人提供稳定高速的CN2专线精品网络。限时促销低至299元!
BlueHost是老牌美国主机,行业经验达18年,以稳定性强,速度快著称!点击查看详情》
论坛言论由会员发布,不代表本论坛观点;非交易论坛,本站不对会员间交易承担任何责任。
代购请联系
Copyright(C) |查看: 1935|回复: 9
刚买了空间,现在要装DZ,不知道要删除哪些文件?
RT,是基础型的空间,里面有一些文件,不知道要删除哪些哦?
出自美国空间侦探,原帖地址:/thread--1.html,转载请注明!
删除public_html下面的default.html默认首页即可。其他的都不用动了。
楼上正解!
DZ程序上传到哪个文件夹下呢?
文件上传到public_html文件夹下!
public_html下面的images文件夹也应该删除吧?
可以打开看看,如果没有什么文件就可以删除的!
www文件夹呢?
/www和/public_html其实是同个目录, /www是/public_html访问的快捷方式,
在linux下,程序默认的安放目录一般是public_html目录,你上传到public_html这个目录下的网站内容对应的www下面会有一份备份!
回复 9# 的帖子
可以建个bbs文件夹,然后把指向这个文件夹吗?把,作为主页
站长推荐 /4
GoDaddy最新给力优惠最低仅需1美元!低价促销,不可错过!
美国主机商HostEase无限空间流量,支持无限建站,cPanel中文操作面板,多PHP版本自由切换。现在通过主机侦探代购仅需198元,送国际域名!
美国服务器有多快?RAKsmart上线CN2服务器直连中国电信,为对中美间网络质量要求极高的企业客户及个人提供稳定高速的CN2专线精品网络。速速来体验!
好消息!主机侦探正式推出EV SSL证书代购服务,帮助国内企业客户快速获取证书,并在我们的技术人员专业指导下正确安装。快速代购,安全无忧!
论坛言论由会员发布,不代表本论坛观点;非交易论坛,本站不对会员间交易承担任何责任。
代购请联系

我要回帖

更多关于 误删除文件恢复 的文章

 

随机推荐