Linux运维之文件删除与恢复

标签: 无 分类: 未分类 创建时间:2021-02-05 05:34:03 更新时间:2024-11-23 02:04:25

2021年02月05日,部署geoserver的图片样式时,发现/usr/local/下的tomcat文件夹不见了,连同nginx等目录也不存在了。但是在同一时间的早些时候,文件都还在,并且geoserver也可以正常的运行,在地图上可以叠加相应的WMS服务。

问题可能原因,文件家被移动了。经过检查,发现在/usr/ogdi41目录下有一个local文件夹,里面包括了所有需要的应用程序,比如tomcat_9.0.40文件夹,以及nginx文件夹。初步怀疑是管理员在操作时不小心将文件夹移动所致,然后就是将/usr/ogdi41/local/重新移动到/usr/local。

参考文章:
1.误删文件后恢复数据 (阿里云提供的使用extundelete进行恢复的操作)
2.linux如何复制文件夹和移动文件夹 (这里的cp -Rf 强制覆盖好像有些问题,因为即便是使用了-f,还是会提示是否覆盖,主要原因是cp命令被系统设置了别名,相当于cp=‘cp -i’,所以需要执行 /bin/cp -rf 代替)
3.Linux 使用 cp 命令强制覆盖功能 (cp强制覆盖)
4.linux cp命令直接覆盖不提示按Y/N的方法 (也是两种方式说明如何使用cp进行强制覆盖)
5.lsof查看文件被什么进程占用 (如何使用lsof命令)
6.Linux恢复误删除的文件或者目录 (这里说了两种方法,一种就是使用了lsof命令,恢复程序正在使用的文件;一种是使用extundelete工具恢复被删除的文件)
7.急,虚拟机linux根目录下面的usr文件夹不见了!! (先使用history进行文件移动)

1.查找操作记录

1
history

2.查看进程使用文件

1
2
## 查看被删除的文件
lsof | grep deleted
参考文章:
1.linux使用lsof恢复删除文件 (使用lsof查找被程序加载的文件,并恢复的方法,这个前提就是程序正在运行)

3.阿里云工程师给出的方法

删除记录您可以执行history命令看下是否有对应的记录,恢复数据如果之前有创建快照的话,可以使用快照创建云盘挂载到服务器上恢复一下对应的数据,如果没有快照,可以参考以下链接恢复一下,操作之前请您务必创建快照备份好数据

创建快照
使用快照创建云盘
Linux实例中数据恢复

4.rm无法删除文件

在使用rm -rf 命令删除文件的时候,出现了:cannot remove ‘local/aegis/aegis_update/aegis.crt’: Operation not permitted,可是我已经是处于root权限了。

解决方法,使用chattr进行文件解锁。chattr命令的作用很大,通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。

1
chattr -i local/*
参考文章:
1.解决无法删除文件 rm -rf (使用chattr -i命令,将文件解锁)
2.Unix/Linux 系统中的 Operation Not Permitted 问题
小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。