Linux从删库到跑路的命令,程序员,Linux 下如何避免从删库到跑路的悲剧?

原标题:程序员,Linux 下如何避免从删库到跑路的悲剧?

59297ed5eb1103a35b7e380ce9e8460c.png

作者简介:刘晨,网名 bisal,Oracle 技术爱好者,CSDN 和 ITPub 专家博主,拥有 Oracle 10g/11g OCP、Oracle 11g OCM、EXIN DevOps Master、SCJP 等国际认证,Oracle YEP 和 OCMU 成员,目前就职于一家央企,担任运维经理,负责某核心系统应用运维。CSDN 博客:https://blog.csdn.net/bisal

本文经授权转自作者个人公众号「bisal 的个人杂货铺」。

Linux 下有些指令非常重要,或者说非常危险,rm 就是其中之一,无论跟什么参数,需要的是谨慎的操作,以下就是个真实的教训。

1. vi 编辑文件的时候,需要执行":w"退出,但是 w 和~的键位非常近,输入":w ~"指令,于是当前路径,创建了一个名称"~"文件。

-rw-r--r--. 1 oracleoinstall2 Feb1 01 :10~

2. 删除文件,执行 rm 指令:

$ rm ~

回车下来,一直 hang,以为出现问题了,于是执行 Ctrl+C。

3. 一会在看用户家目录,发现原来存储的文件,怎么找不着了?开始以为有人误删除了,于是使用 last,查看历史登录的用户信息,发现只有自己。

4. 使用 history 看下历史执行的指令:

...

210 rm ~

211 ls -rlht

212 rm -rf ~

...

5. 此时恍然大悟,忘记了"~"的含义:

$ echo ~

/home/user

其实"~"代表了用户的家目录,之所以在第二步出现了 hang,因为家目录下有文件,删除需要时间,如果文件较小,执行 rm 可以立即看见提示:

$ rm ~

rm: cannot remove `/home/user': Is a directory

由于~代表家目录,因此是一个文件夹不是文件,所以直接使用 rm 提示错误,需要-rf 参数,此时用户家目录下未被删除:

$ rm -rf ~

rm: cannot remove `/home/user': Permission denied

此时虽然会提示错误,但当前用户家目录下,所有的文件均已被删除,只是因为权限不能删除/home/user,如果此时用的 root,我猜就可以执行。

因此可以任意执行指令 rm,是非常危险的一件事情,极有可能让你误操作,甚至未反应过来,有什么方法可以避免?

一个是要建立这种意识,就是执行这种特殊指令前,不要急于回车,静下来一两秒,再做操作,但说起来容易,做起来难,不是一朝一夕,就能建立。

另一个是可以通过技术手段,降低执行 rm 的误操作程度,网上有不少方法,其中一种方法,就是建立类似回收站机制。

1. 用户家目录下,建立隐藏文件夹.trash:

$ mkdir.trash

2. 创建 remove.sh 脚本,实现逻辑简单:

$ vi remove.sh

//定义文件夹目录.trash

TRASH_DIR= "/home/user/.trash"

fori in $*; do

//定义秒时间戳

STAMP=`date +%s`

//得到文件名称(非文件夹),参考man basename

fileName=`basename $i`

//将输入的参数,对应文件mv至.trash目录,文件后缀,为当前的时间戳

mv $i $TRASH_DIR/$fileName.$STAMP

done

3. 修改.bashrc,增加一行:

# User specific aliases and functions

aliasrm= "sh /home/user/tool/remove.sh"

即设置一个 rm 同名 alias。

4. 此时执行 rm:

$ rm 1

进入隐藏文件夹:

$cd.trash

检索当前路径:

$ ls

1.1517500702

其实执行 rm 1,只是将文件 1 执行 mv,存储于隐藏目录.trash,并用时间戳改名,需要的时候可以直接恢复,实现回收站机制。

5. 当然目录.trash,需要控制容量,一种方法,是可以写个定时任务,要是智能一些,就可以判断文件夹的容量,超过阈值,就执行清理操作,要是粗暴一些,可以每日定时执行清理,例如:

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

每日 00:00 定时执行,清空隐藏目录.trash。

对于 Linux 下的一些重要指令,首先要有敬畏,意识上建立起谨慎的态度,其次可以使用一些技术手段,限制这些误操作,方法可能不少,重要的是,找到符合自己的需求,达到避免误操作的目的,这是需要积累的经验。返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值