转载自:程序员如何优雅地防止从删库到跑路?


IT 界的有一个老梗,一次某论坛的数据库管理员抱怨自己老板一直虐待他,结果他一气之下就删库跑路了……

此前也曾有新闻报道,北京一软件工程师离职后因公司未能如期结清工资,便利用其在所设计的网站中安插的后门文件将网站源代码全部删除,结果因破坏计算机信息系统罪而获刑五年......

但如果我在服务器维护的时候不小心执行了 rm -rf 命令……现在整台服务器被我删光了肿么办???......所以程序员特别喜欢跑步锻炼。

好吧,言归正传。本文我们来讨论下,程序员如何优雅地防止数据误删。现在先来介绍一下 rm。

rm 是 linux 系统下删除文件的命令,-r 代表删除这个下面的一切,一切的一切那种的一切。f 表示不需要用户确认,直接执行。

通常这个命令都是指定文件夹用的,比如:"rm -rf /home/test/"

就是删除 /home/test/ 这个文件夹下面的所有东西。

但是如果后面的文件夹路径没有加对,rm -rf / 在服务器上也就意味着…

解脱了......

俗话说的好:常在河边走,哪能不湿鞋。那该怎么避免这种悲剧的发生呢?

一个方案就是重定向 rm 命令以嫁接为 mv 命令,相当于给 Linux 系统定制了一个回收站。

实现方式如下:

最后将上述脚本写入 /etc/bashrc,并立即执行命令 source /etc/bashrc 即刻生效。

这个脚本定义了几个命令:

  • rl:查看回收站下的文件;

  • unrm 文件名或目录:恢复到当前的路径下;

  • rmtrash:清空回收站,不过会友好提示。

执行 rm 不会真正删除,而是使用 mv 移动到我们指定的回收站。实在真的想删除可以 /bin/rm 来进行删除。另外,需要注意的时,之前 rm 指令的一些参数可能不再使用,因为 rm 现在其实是 mv 了。

使用示例:

效果看着应该还可以吧。

看着是还可以,但是也有一些问题,比如删除文件不能重名,若重名了会提示你是否进行覆盖。那就需要再进行特殊处理了,比如删除时加个时间戳什么的,有兴趣的动手实现下吧。

Linux 自定义回收站相关推荐

  1. linux系统回收站功能的实现

    如何实现linux系统的回收站功能,对rm权限做限制,避免误删造成不可逆问题. 这就要靠环境变量去实现,首先需要了解环境变量的作用. /etc/profile,/etc/bashrc 是系统全局环境变 ...

  2. Linux自定义命令

    linux自定义命令,就是给当前命令取个别名. 比如:ls 列出当前的文件,rm + 文件名 就能删除该文件,如何自定义命令,可以使用alias 比如:alias gobin='cd /opt/tom ...

  3. 在linux设置回收站 - 防止失误操作造成数据清空,并定期清理

    安装trash sudo apt-get install trash-chi 原理 执行trash命令后,是将文件移动了用户的回收站,每个用户的回收站路径为$HOME/.local/share/Tra ...

  4. linux自定义开机启动服务和chkconfig使用方法

    文章转载! linux自定义开机启动服务和chkconfig使用方法 1. 服务概述 在linux操作系统下,经常需要创建一些服务,这些服务被做成shell脚本,这些服务需要在系统启动的时候自动启动, ...

  5. linux自定义以太网协议_如何压接自己的任意长度的自定义以太网电缆

    linux自定义以太网协议 Have you ever needed a short Ethernet cable, but all the ones in your closet are six f ...

  6. linux 自启动 快捷键,linux自定义快捷键、文件打开方式、文件快捷方式、启动器及开机启动...

    http://blog.csdn.net/pipisorry/article/details/39584173 linux自定义快捷键 lz的: shutter-s shutter -s gnome- ...

  7. 如何在浏览器中运行Linux程序,在linux自定义协议,让浏览器可以调用本地程序...

    在linux自定义协议,让浏览器可以调用本地程序 第一种是在gnome桌面环境下,执行以下步骤 并且重启系统 gconftool-2 -t string -s /desktop/gnome/url-h ...

  8. linux文本分割符怎么显示,Linux自定义分隔符IFS引发的文本处理问题

    需求是检查指定应用的某些配置所以就写了个脚本,数据文件的内容是这样的:应用名称|IP|端口    多个IP用空格,这样可以生成数组.这个文件的数据是通过部署平台的API获取后自己组装的. #!/bin ...

  9. linux 自启动 快捷键,Linux 自定义快捷键

    Linux 自定义快捷键 (2012-06-14 02:25:11) 标签: 快捷键 linux 杂谈 Linux的一个特色就是其命令多而且功能强大, 频繁输入命令不仅麻烦而且工作量较大,虽然可以使用 ...

最新文章

  1. 代币转账_手把手教你从源代码开始搭建多节点以太坊私链(五)部署智能合约及代币发行...
  2. 中国光纤管理解决方案市场发展分析及十四五规划咨询建议报告2022年版
  3. opencv如何显示中文?
  4. C语言课程学籍管理课程书面报告,C语言学籍管理系统课程设计报告书
  5. 我想变得富有的10个理由
  6. 工作310:uni-初始获取数据onload
  7. JavaScript正则表达式 exec
  8. java操作数据库 jdbc
  9. 如何让开关打开_汽车油箱盖如何打开?老司机:不外乎这三种方式
  10. centos7 删除zabbix_Zabbix服务器端运行中显示为“不”的解决方式
  11. 案例学习BlazeDS+Spring之七InSync05新增联系人
  12. mybatis-generator扩展教程系列 -- 自定义配置参数修改DAO,Mapper文件后缀
  13. 用UltraISO刻录CDDVD系统光盘的图文教程
  14. 组合模型——Tree models、Boosting、 Committee
  15. Linux下查看网络设备类型
  16. 案例分享 | 昭通装配式绿色建筑产业园EPC工程总承包项目管理实践
  17. 2021年深圳市专精特新中小企业申报要求及遴选内容指南,包括补贴20万
  18. 【Unity】Unity 脚下光圈
  19. STM32 RCC设置
  20. 网络爬虫-58同城·招聘联系电话js解密

热门文章

  1. java集成微信发送模板消息
  2. 最新Python异步编程详解
  3. char *s=“\ta\017bc“所占字节数
  4. LENOVO ERAZER Z51 安装固态指南
  5. 【CentOS7联网】保姆级手把手解决CentOS7的上网问题
  6. 经典白话算法之桶排序
  7. 谷歌开源新模型 EfficientNet:图像识别效率提升 10 倍,参数减少 88%
  8. hBuilder天蓝主题插件
  9. 老人理财经常被骗 80后如何帮父母理财
  10. 《微机原理第五版》期末知识总结(第八章---第十章)