Linux复制到home后自动删除,[rm] Linux 防止rm -rf / 误删除
引以为戒!!!
一、缘由:
最近看到这则新闻,很是悲伤,因为我最近也在用ansible;然而这一错误源自Ansible上糟糕的代码设计,这款Linux实用工具被用于在多台不同服务器上自动执行脚本。
开发者解释到,实际参数应该是“rm -rf {foo}/{bar}”,foo和bar是脚本中动态传递的两个变量。然而由于变量处理出错,通用语法未能成功在bash命令中插值,所以最终指令就变成了可怕的“rm -rf /”。
“rm -rf /”意味着擦除根路径“/”下挂载的所有内容而无需询问。
以前一个主管说过,在你不充分了解某个工具的原理的时候,不要太过相信依赖他。哪怕自己去写个简陋的,可以看到源码,也是比较靠谱的。深信不疑!
二、解决办法:
为了避免误删根目录,或者重要的文件,整理了以下方法:
1、safe-rm
safe-rm 是一个开源软件用来替代不×××全的rm,可以在/etc/safe-rm.conf中配置路径黑名单,定义哪些不能被safe-rm删除。
可以将 safe-rm 更名为 rm 并放在 $PATH 中比 原rm 程序靠前的位置。一些脚本中使用完全路径/bin/rm则不会受此影响。
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)设置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等等。
Linux复制到home后自动删除,[rm] Linux 防止rm -rf / 误删除相关推荐
- Elasticsearch生命周期ILM若干时间后自动删除索引index
Elasticsearch生命周期ILM若干时间后自动删除索引index (1)先手动在 数据 - 索引生命周期策略 里面 创建策略,假设这个策略名字叫 my-demo-test-policy.注意把 ...
- linux复制文件夹 实例,linux复制文件夹与文件实例介绍linux操作系统 -电脑资料
本文章来介绍一下关于linux复制文件夹与文件的一些基础用法,有需要学习的朋友可参考一下本文章, CP命令 格式: CP [选项] 源文件或目录 目的文件或目录 选项说明:-b 同名,备分原来的文件 ...
- linux改完权限后 自动恢复,linux文件或目录权限修改后如何恢复(备份了权限就能恢复)...
操作系统 RHEL5 如果你在linux上执行了如下操作 chmod -R 777 / 或者 chmod -R 700 / 那么恭喜你,你的系统即将崩溃,重启之后,你进不了图形界面,而且很多服务都起不 ...
- linux系统安装报firstboot错,自动安装部署LINUX
自动安装部署Linux ----吾情灬小屁孩 QQ:8651060 下面为大家做一个可以无人值守安装rHat6. 需要:两台电脑.一台做为服务器,一台客户机. YUM源(安装包) 我们需要安装以下几个 ...
- 在linux中的vi中的删除操作,linux中vi和vim操作
一.简单介绍 vi 和 vim 类似于windows的文本编辑器 所有的Linux系统都会内置vi文本编辑器 vim可以看做是vi增强版,具有程序编辑能力,支持语法高亮,代码补全,编译及错误跳转等功能 ...
- putty远程登录linux有啥用,putty 自动远程登录linux
在实际的开发和学习中我们会频繁的使用某些远程登录工具,通过网络登录到linux系统中进行程序编写和调试.Putty是比较流行的工具,但是在putty下每次链接到远端linux都要重新输入用户名和密码, ...
- 把Word的内容复制到Excel后自动分成多列
有些时候我们将Word文档中的内容复制后粘贴到Excel表格中后,经常会出现同一行文字都显示在一列(一个单元格)的情况,比如一些信息需要分列显示才能更直观和便于数据处理,要如何才能实现将Word复 ...
- linux cp 目录不存在自动创建,关于linux:Linux技巧cp命令自动创建不存在的目录和只复制修改的文件...
复制时主动创立不存在的子目录 在 Linux 中,能够应用 cp 命令的 --path 选项指定在复制的时候主动创立不存在的子目录. 例如执行上面的命令: $ cp --path java/com/s ...
- 如何实现Outlook 2010 下载邮件后自动删除服务器上的邮件
outlook2010---文件---信息---账户设置---选中要设置的帐号---双击点选要设置的邮箱---其他设置---高级---在服务器上保留邮件的副本---14天后删除服务器上的邮件副本,修改 ...
- linux lp0设备,P1108打印机插入Linux设备USB口后自动reset
我安装了一台字符界面的Linux操作系统,3.10的内核,在把HP1108型号打印机插入USB口后,dmesg看到如下信息: [20934.725387] usb 2-1.2: new high-sp ...
最新文章
- linux mint 13 input method of chinese
- vscode安装Remote -WSL插件连接本地的wsl
- 数据结构(二)--队列
- 普通高中生水平就能干好的编程到底是不是高科技?
- 听说下雨天,子序列和孤单的你更配哦~
- SAP License:SAP顾问你算哪根葱?
- 3D数学基础:图形与游戏开发
- 虚拟IP技术 ip地址漂移技术
- Redis中Pipeline的使用
- linux手机刷机包制作工具_安卓10刷机包
- html5网页制作的基本步骤,网页制作流程介绍
- 百趣生物受邀参加代谢组学及脂质组学质谱技术研讨会
- 如何查看Mac系统的位数
- VS2013MFC对话框工程学习笔记二 - 了结布局和一些基本的窗口组件
- 程序员面试阿里、腾讯、京东等大公司,这些套路你知道吗?
- 网易有道能否异军突起—网易押宝
- OC7141 PWM 调光的线性降压 LED 恒流驱动器
- ecg 幅度_心电图 (ECG) 与光电容积图 (PPG) 基本工作原理,如何测量?
- 专家详解华尔街区块链投资和其对比…
- 同一个C#程序引用了2个不同版本的同一个第三方DLL
热门文章
- 用字母表中的位置替换每个字母。
- JVM笔记——技术点汇总
- Codeforces Round #110 (Div. 2)
- nw.js桌面软件开发系列 第0.1节 HTML5和桌面软件开发的碰撞
- System.IO.Ports.SerialPort串口通信接收完整数据
- Lucene系列-分析器
- SharePoint 2010: Claims-based Authentication
- NLP技术基石:从N-gram统计语言模型到BERT预训练模型演变史概述
- 劝你别再闷头自学NLP了!!!请收下这套自然语言处理(NLP)算法学习路线!
- ACL Findings | 任务共舞,小样本场景下的多任务联合学习方法初探