真实惨案:数据丢失=企业“心脏骤停”
某健身房老板深夜崩溃:服务器故障导致所有VIP会员信息消失!
客户充值金额清零、账号无法登录,甚至有人浑水摸鱼冒充VIP索赔……最终公司不仅损失百万,更遭遇信任危机。
这还不是最狠的!
2020年某大厂“删库跑路”事件,直接让服务器瘫痪8天,市值蒸发24亿,客户集体流失!
数据就是企业的命脉,你敢把命交给运气吗?
文件删除≠彻底消失
当文件被误删除的时候,是怎么进行恢复的?
在Linux系统中,文件的组成为元数据(metadata)加上数据(data)。元数据就是描述数据的数据,数据就是真正保存内容的位置,是不是特别晦涩难懂?简单来说,你在系统层面看到的/etc/passwd文件的文件类型、文件大小、文件的拥有人/拥有组等信息都是属于文件的元数据,最重要的是元数据中还保存着指向数据块位置的指针。通过指针找到数据块的位置,读取其中的内容。
那么元数据又是存放在哪儿的?元数据是存放到inode编号中,系统中的每一个文件都有inode编号。
文件如果通过rm命令被删除,你会发现这个文件在系统上已经看不到了。但实际上,rm命令删除的只是文件名和inode编号的映射关系。系统是根据inode编号识别文件,用户是根据文件名识别文件。虽然看起来文件被删除了,但实际上这个文件占用的底层的数据块依旧存在。只要没有下一个数据覆盖这个数据块的内容,那么数据就可以被找回来。
PS:当遇到文件被误删除的时候,请不要在继续写入文件,防止误删除文件的数据块被覆盖。
那么如何保证数据安全性呢?
1. 提前备份数据,做容灾双活等方案
2. 遇到数据丢失及时向上报告,争取每分每秒的时间
根据不同的文件系统,文件恢复的方式不一样。
对于ext系列文件系统来说,可以通过第三方恢复工具进行文件的恢复,如extundelete工具。对于xfs文件系统来说,文件误删除后无法直接找回,要么通过专业第三方企业进行恢复,要么提前针对xfs文件系统进行备份,然后进行数据恢复,如xfsdump和xfsrestore工具。
系统中还有一种不需要借助任何第三方工具来进行恢复文件的工具,那就是lsof。lsof命令可以列出进程调用了哪些文件。当这个文件被系统中某个进程读取的时候,就会加载到内存中。即使你从硬盘上删除了文件,但是内存中还存在,我们可以通过读取内存中的文件来进行恢复文件。
●lsof实操案例
list openfile ,列出进程打开的文件信息,此文件可以是磁盘文件、网络套接字socket、命名管道和设备
●查看文件是否被占用
1.过滤messages文件被打开的进程
2.删除文件
3.查看打开messages文件的进程
4.找到对应的文件描述符,进行恢复
PS:当文件被删除之后,切完不要重启对应的服务。因为重启服务会重新加载。拿日志文件举例,如果服务重启,则日志文件内容会被刷新。
lsof的其他用法:
● 查看一个用户打开的文件
● 查看一个进程打开的文件
● 查看谁在访问指定的端口
关注我们,解锁更多系统运维秘籍,让你的Linux从此“稳如老狗”!
想要系统掌握IT工程师必备技能?誉天运维实战班重磅升级!
告别“浅尝辄止”!课程从16天扩容至24天,新增:
➤ 华为欧拉容器化技术全解析
➤ 红帽Ansible自动化集群实战
➤ 双系统混合环境故障排查
课时拉满、内容翻倍,原价不变!从理论到实战,打造“即插即用”型人才。