前几天在做php期末项目中,这个期末项目做了一个月,最后再添加一个清除缓存的功能就可以完成了,可是悲剧就是在最后发送,写了一段清理缓存的代码,因为还是学生在学习阶段,代码不完善,而且没有经过测试(教训一),直接放在项目里执行,导致写的30几个php文件全部被自己删了,而且没有备份(教训二)。
最恨的是,误删文件之后我还往这个文件夹里写入了一些东西并且还把extundelete装到了这个文件夹下(教训三),导致文件只恢复少量一部分,大部分因为被新写入的数据彻底覆盖。
教训一:测试。在写功能的过程中,有些有危险性的功能必须经过测试再投放到项目中。
教训二:备份。为期一个月课余时间写的代码,在后面半个月完善功能代码的过程中,竟然没有做过哪怕一次备份。
教训三:误删后不能再往该硬盘写入任何数据,在数据被误删除后,第一时间要做的就是卸载被删除数据所在的分区,如果是根分区的数据遭到误删,就需要将系统进入单用户模式,并且将根分区以只读模式挂载。 因为将文件删除后,仅仅是将文件的inode节点中的扇区指针清零,实际文件还储存在磁盘上,如果磁盘继续以读写模式挂载,这些已删除的文件的数据块就可能被操作系统重新分配出去,在这些数据库被新的数据覆盖后,这些数据就真的丢失了,谁都也无力回天了。
结果是通过extundelete只恢复了少量一部分文件,难得的一次经历。
时间: 2024-10-06 21:32:49