zoukankan      html  css  js  c++  java
  • Linux防止“rm -rf /”误删除

    说明:不解释了,运维应该在每台服务器都去配置这个问题以减少灾难的发生

    方法:

    1、safe-rm

    safe-rm是一个开源软件用来替代不太安全的rm,可以在/etc/safe-rm.conf中配置路径黑名单,定义哪些不能被safe-rm删除。

    可以将safe-rm更名为rm并放在$PATH中比原rm程序靠前的位置,或者使用alias设置。一些脚本中使用完全路径/bin/rm则不会受此影响。

    $ rm -rf /etc/
    #提示 safe-rm: skipping /etc/

    官方地址:http://freecode.com/projects/safe-rm,Ubuntu可以直接apt-get安装,CentOS要下载源码安装。

    2、(推荐这种方式)建立回收站机制

    它并不真正执行删除操作,而是将文件移动到一个特定目录,可以设置定时清楚回收站,或者在回收站里面的文件大小达到一定容量时(或者用时间做判断)执行删除操作以腾出空间。

    可以写个Shell脚本替换rm命令,或者在需要删除文件的时候使用mv命令将文件移动到回收站。  

    1)在/home/username/目录下新建一个目录,命名为:.trash

    2)在/home/username/tools/目录下,新建一个Shell文件,命名为:remove.sh

    TRASH_DIR="/home/username/.trash"  
      
    for i in $*; do  
        STAMP=`date +%s`  
        fileName=`basename $i`  
        mv $i $TRASH_DIR/$fileName.$STAMP  
    done  

    3)修改~/.bashrc, 增加一行

    alias rm="sh /home/username/tools/remove.sh"

    用我们自建的remove.sh替代rm命令

    4)设置/etc/crontab,定期清空垃圾箱,如:

    0 0 * * * rm -rf /home/username/.trash/*

    每天0点清空垃圾箱

    5)source ~/.bashrc使替换立即生效

    3、注意脚本中rm -rf变量的使用

    在脚本尽量不要使用 rm -rf $FOO/, 请使用rm -rf $FOO,另外删除尽量不要写相对路径,不要带变量。 

    4、根文件系统设置只读挂载

    noauto,ro

    5、各种备份

    可以异地远程备份重要的数据,采用dump的增量备份机制,LVM快照,虚拟化环境中的快照、raid5等等。

    参考:

    https://www.cnblogs.com/langdashu/p/5404595.html(以上内容转自此篇文章)

    https://serverfault.com/questions/337082/how-do-i-prevent-accidental-rm-rf

    https://www.zhihu.com/question/29438735

  • 相关阅读:
    visual studio disable git
    app常见性能测试点
    App测试流程及测试点(个人整理版)
    APP测试要点
    APP端测试常见的功能点
    一文搞懂性能测试常见指标
    为什么会有生产bug?
    线上出了bug,是谁的责任?
    生产上线发现重大Bug的思考
    项目上线后出现Bug,该如何处理?
  • 原文地址:https://www.cnblogs.com/EasonJim/p/8088497.html
Copyright © 2011-2022 走看看