美文网首页互联网科技Java 杂谈Spring-Boot
记一次用rm -rf命令猛如虎删除linux服务器文件经历

记一次用rm -rf命令猛如虎删除linux服务器文件经历

作者: 刀哥说Java | 来源:发表于2019-07-08 17:22 被阅读4次
    记一次用rm -rf命令猛如虎删除linux服务器文件经历

    背景

    前段时间,经公司护网行动安全要求,需要对部署在tomcat等服务器上的程序进行安全漏洞扫描,楼主在没任何工作交接的情况下,只能自己动手把war从tomcat所在服务器下载下来。可是楼主在备份war包的过程中,用rm -rf命令误删除了某个文件上传共享目录(war包中有些文件太大,下载不了,所以要删除。),导致很多新闻展示不了。经过一个通宵达旦的各种前抢修和数据恢复,还是有部分数据丢失。万幸的是这个应用快要下线了,数据少几条没关系,现在回过头来想想,只能阿弥陀佛了。

    删除原理分析

    当有人告诉我数据不能完全恢复时,我蒙B了五分钟,这种事尽然发生在我身上。。。面壁。。。

    记一次用rm -rf命令猛如虎删除linux服务器文件经历

    原理分析

    当硬盘上的一个文件删除,其实没有真正想象中的那样在硬盘上清除掉的,它是把inode号和block块的链子断开,但是真正的数据还是在硬盘上的,有没有感觉比在windows上删除快,当你在删除文件的地方重新复制了新文件,那时候才会把之前的文件覆盖掉,也就是说删除了没有关系,千万不要往那个位置放文件了。

    也就是说,删除了文件不要紧,但是一定不要在原先的文件地方再次写入新的文件,因为这会触发真正的覆盖原先文件,也就是真正的删除文件,再也恢复不了了。

    文件如何恢复

    可以用ext3grep工具进行文件恢复,前提是要求你的系统是在ext3或者ext4 的文件系统,因为ext3文件系统是日志型文件系统,ext3文件系统储存信息的时候是由inode号和block块存储的。

    记一次用rm -rf命令猛如虎删除linux服务器文件经历

    ext3grep教程参考:https://www.cnblogs.com/lazyfang/p/7699994.html

    rm常用参数

    记一次用rm -rf命令猛如虎删除linux服务器文件经历

    常用参数说明

    -f, --force 强制删除。忽略不存在的文件,不提示确认

    -i 在删除前需要确认

    -r, -R, --recursive 递归删除目录及其内容

    -v, --verbose 详细显示进行的步骤

    询问式删除文件

    <pre style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-family: Consolas, Menlo, Courier, monospace; font-size: 16px; white-space: pre-wrap; position: relative; line-height: 1.5; color: rgb(153, 153, 153); margin: 1em 0px; padding: 12px 10px; background: rgb(244, 245, 246); border: 1px solid rgb(232, 232, 232);">rm 文件名
    </pre>

    删除文件时,系统会先询问是否删除。

    例子:

    <pre style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-family: Consolas, Menlo, Courier, monospace; font-size: 16px; white-space: pre-wrap; position: relative; line-height: 1.5; color: rgb(153, 153, 153); margin: 1em 0px; padding: 12px 10px; background: rgb(244, 245, 246); border: 1px solid rgb(232, 232, 232);">rm a.log
    </pre>

    强制删除目录和文件

    <pre style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-family: Consolas, Menlo, Courier, monospace; font-size: 16px; white-space: pre-wrap; position: relative; line-height: 1.5; color: rgb(153, 153, 153); margin: 1em 0px; padding: 12px 10px; background: rgb(244, 245, 246); border: 1px solid rgb(232, 232, 232);">rm -rf 目录名
    </pre>

    rm -rf会强行删除该目录以及所有文件、子目录下的所有文件和目录。

    例子:

    <pre style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-family: Consolas, Menlo, Courier, monospace; font-size: 16px; white-space: pre-wrap; position: relative; line-height: 1.5; color: rgb(153, 153, 153); margin: 1em 0px; padding: 12px 10px; background: rgb(244, 245, 246); border: 1px solid rgb(232, 232, 232);">rm -rf /data/logs
    </pre>

    通配符删除文件

    <pre style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-family: Consolas, Menlo, Courier, monospace; font-size: 16px; white-space: pre-wrap; position: relative; line-height: 1.5; color: rgb(153, 153, 153); margin: 1em 0px; padding: 12px 10px; background: rgb(244, 245, 246); border: 1px solid rgb(232, 232, 232);">rm -rf *
    </pre>

    通过*表示删除当前目录下所有目录和文件。

    例子:删除目录下以log扩展名结尾的所有日志文件

    <pre style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-family: Consolas, Menlo, Courier, monospace; font-size: 16px; white-space: pre-wrap; position: relative; line-height: 1.5; color: rgb(153, 153, 153); margin: 1em 0px; padding: 12px 10px; background: rgb(244, 245, 246); border: 1px solid rgb(232, 232, 232);">rm -f .log
    </pre>

    经验总结

    记一次用rm -rf命令猛如虎删除linux服务器文件经历

    1、做好源程序和线上war包备份

    2、慎用rm命令,改用mv命令

    3、做好关键文件和数据备份

    4、慎用你的自信心,在不了解系统情况下,尽量不要动手,背锅侠不好当

    最后

    如果觉得本文对您有帮助的话,记得关注、转发哦,我会为大家持续提供原创干货。需要资料,请关注、转发,私信“资料”面试+微服务+springboot资料免费赠送。

    相关文章

      网友评论

        本文标题:记一次用rm -rf命令猛如虎删除linux服务器文件经历

        本文链接:https://www.haomeiwen.com/subject/keyahctx.html