让rm–rf 不那么危险
来源:互联网 发布:java string 字符集 编辑:程序博客网 时间:2024/03/29 16:34
前几天,一手误,敲错了命令,把在线的ORACLE数据文件给rm -rf掉了,当时大脑翁的一下,彻底蒙了,10分钟内我什么也没有坐,让自己的情绪平和下来。想了下要怎么办,还好数据库是做了定时rman备份,直接将所有的数据库文件进行了restore和recover,索性比较顺利,如果不是备份的数据库文件被删除,那可能就得用到ext3grep工具来做恢复了。
通过这次的失误,总结血的教训:
1.再次验证rm是极其危险,小心,三思,或者直接将命令改写掉
2.所有的备份必须测试有效,能够快捷恢复
3.备份是一个长期的过程
首先,搞个回收站
进入用户目录下,在 .bashrc或者.bash_profile加入如下内容
[root@db01 bak]# ll?? 8drwxr-xr-x 2 root root 4096 11-15 11:42 memdrwxr-xr-x 2 root root 4096 11-15 11:42 prudent-rw-r--r-- 1 root root 0 11-15 11:42 prudent.log[root@db01 bak]# rm *[root@db01 bak]# ls[root@db01 bak]# unrm mem[root@db01 bak]# unrm prudent[root@db01 bak]# cleartrashclear sure?[n]y-bash: /usr/bin/rm: ?????????[root@db01 bak]# unrm prudent.log[root@db01 bak]# ll?? 8drwxr-xr-x 2 root root 4096 11-15 11:42 memdrwxr-xr-x 2 root root 4096 11-15 11:42 prudent-rw-r--r-- 1 root root 0 11-15 11:42 prudent.log[root@db01 bak]#
同时在.bashrc中再添加如下函数,用来删除错误后可以直接通过回收站恢复:
cleartrash(){read -p "clear sure?[n]" confirm[ $confirm == 'y' ] || [ $confirm == 'Y' ] && /usr/bin/rm -rf ~/.trash/*}
将如上代码添加好后,重新登录用户后生效。
注:
rm 就相当于执行mv了,删除的文件会在.trash中出现
此时已经木有rm -rf了
通过unrm filename,则可以经删除的文件恢复。
通过 cleartrash,则清空回收站,从此不可再恢复。
egg:
[root@db01 bak]# ll –目录下是有两个目录和一个文件
?? 8
drwxr-xr-x 2 root root 4096 11-15 11:42 mem
drwxr-xr-x 2 root root 4096 11-15 11:42 prudent
-rw-r–r– 1 root root 0 11-15 11:42 prudent.log
[root@db01 bak]# rm * —将所有文件删除后目录为空
[root@db01 bak]# ls
[root@db01 bak]# unrm mem —开始做数据恢复
[root@db01 bak]# unrm prudent
[root@db01 bak]# unrm prudent.log
[root@db01 bak]# ll —恢复完成后数据回来了。
?? 8
drwxr-xr-x 2 root root 4096 11-15 11:42 mem
drwxr-xr-x 2 root root 4096 11-15 11:42 prudent
-rw-r–r– 1 root root 0 11-15 11:42 prudent.log
[root@db01 bak]#
- 让rm–rf 不那么危险
- 让rm–rf 不那么危险
- 让rm–rf 不那么危险
- 让 rm -rf * 不再那么可怕
- 慎用!!! rm -rf 潜藏着巨大的危险!
- rm -rf /
- RM -RF /
- Linux rm -rf删除文件不释放空间的解决办法
- 永远不要在Linux 执行的 10 个最危险的命令 rm rf
- rm -rf 命令带来的恶梦 修改rm命令;让rm 命令删除的文件到回收站
- 解决 rm -rf *
- rm -rf / 好屌!
- 解决 rm -rf *
- Ubuntu下rm;rmdir;rm -rf;学习
- LINUX命令rm -rf filenem
- rm -rf 血的教训
- 恢复rm -rf * 的数据
- rm -rf 根目录日志记录
- 探索 Pexpect,第 2 部分:Pexpect 的实例分析
- 查看Oracle中存储过程长时间被卡住的原因
- sqlite学习
- 【原创】高性能服务器本质论
- Spring注解入门
- 让rm–rf 不那么危险
- grails 集成ehcache terracotta-ee-3.7.2 企业版 开发配置
- weblogic下载地址安装过程
- session在另一个页面显示,并把session值写入数据库或另一个标签
- 表情符号
- C/C++ 取整函数ceil(),floor()
- 我的SEO之路2012年11月30日之关键词上首页了。
- linux sort
- untiy3d 混合贴图shader