《如何优雅的使用rm防止误删除脚本》要点:
本文介绍了如何优雅的使用rm防止误删除脚本,希望对您有用。如果有疑问,可以联系我们。
下面的对话是来自运维派QQ群号:201777608
俗话说的好:
常在河边走, 哪能不湿鞋. 身边的例子很多,时刻提醒我们运维人员要建立明确、规范的标准化管理流程;提高运维效率、降低综合成本;保障业务的连续性.
若一不小心执行命令 rm -rf /,如果此时正好拥有root权限,那么后果将不堪设想.
重定义 rm 命令以嫁接mv命令, 相当于给Linux系统定制了一个回收站.
###重定义rm命令###
#定义回收站目录
trash_path=’~/.trash’#判断$trash_path 定义的文件是否存在,如果不存在,那么就创建$trash_path.
if [ ! -d $trash_path ]; then
mkdir -p $trash_path
fi#定义别名:使用rm就调用trash
alias rm=trash#使用rl就调用’ls ~/.trash’ 如果更改上面的回收站目录这里的目录也需要修改
alias rl=’ls ~/.trash’#使用unrm就调用restorefile
alias unrm=restorefile#使用rmtrash就调用claearteash
alias rmtrash=cleartrash#恢复文件的函数
restorefile()
{
mv -i ~/.trash/$@ ./
}#删除文件的函数
trash()
{
mv $@ ~/.trash/
}#清空回收站的函数
cleartrash()
{
read -p “确定要清空回收站吗?[y/n]” confirm
[ $confirm == ‘y’ ] || [ $confirm == ‘Y’ ] && /bin/rm -rf ~/.trash/*
}
最后将上述脚本写入 /etc/bashrc 并立即执行命令 source /etc/bashrc即刻生效.
这个脚本定义了几个命令
unrm 文件名或目录 就是恢复到当前的路径下
rmtrash 就是清空回收站,不过会友好提示.
执行rm 不糊删除,其实就是使用mv 移动到我们指定的回收站
实在真的想删除可以/bin/rm 来进行删除
/bin/rm或者\rm 都可以临时取消别名.
[root@master ~]# touch chen
[root@master ~]# mkdir bao
[root@master ~]# ls
~ bao chen[root@master ~]# rm -f chen
[root@master ~]# find ~ -name chen
/root/.trash/chen[root@master ~]# ll /root/.trash/
-rw-r–r– 1 root root 0 4月 7 02:16 chen[root@master ~]# echo “chenbaojia” >jia.txt
[root@master ~]# cat jia.txt
chenbaojia[root@master ~]# rm -f jia.txt
[root@master ~]# ls
~ bao[root@master ~]# ll /root/.trash/
总用量 4
-rw-r–r– 1 root root 0 4月 7 02:16 chen
-rw-r–r– 1 root root 11 4月 7 02:17 jia.txt[root@master ~]# cat /root/.trash/jia.txt
chenbaojia[root@master ~]# rm -fr bao/
mv:无效选项 — r
请尝试执行”mv –help”来获取更多信息.[root@master ~]# rm -r bao/
mv:无效选项 — r
请尝试执行”mv –help”来获取更多信息.[root@master ~]# rm -f bao/
[root@master ~]# ll /root/.trash/
drwxr-xr-x 2 root root 4096 4月 7 02:16 bao
-rw-r–r– 1 root root 0 4月 7 02:16 chen
-rw-r–r– 1 root root 11 4月 7 02:17 jia.txt
使用我们在用户变量里定义的命令别名 /etc/bashrc
#查看回收站下的文件
[root@master ~]# rl
bao chen jia.txt#恢复jia.txt 到当前目录
[root@master ~]# unrm jia.txt[root@master ~]# ls
~ anaconda-ks.cfg head install.log install.log.syslog jia.txt Package[root@master ~]# cat jia.txt
chenbaojia[root@master ~]# unrm bao
[root@master ~]# ls
~ bao jia.txt[root@master ~]# ll /root/.trash/
-rw-r–r– 1 root root 0 4月 7 02:16 chen[root@master ~]# source /etc/bashrc
#回收站
[root@master ~]# rmtrash
确定要清空回收站吗?[y/n]y
[root@master ~]# ll /root/.tcshrc
-rw-r–r–. 1 root root 129 12月 4 2004 /root/.tcshrc
真想删除可以使用/bin/rm 进行删除 或者 \rm
引用老男孩老师的一句话就是“未雨绸缪永远比出了问题在处理要好的多,出了问题补救是没办法不得已的事,最差的是很多公司,没有亡羊补牢,而是好了伤疤忘了疼,没过多久问题又发生.”
因此,在工作中要尽量做到未雨绸缪,从源头上减少故障的发生.其次,要做到亡羊补牢、举一反三,事情出现一次就不能在出现第二次.当然,完善的备份和恢复策略也是需要做的.只有把这些结合起来,才能把我们运维的工作做的更好.
在日常的运维工作中,确实有很多紧急情况的出现,我们运维人员甚至一度都用“消防员”戏称自己每天的工作.
这好似一个恶性循环,系统越却弱,问题越多,紧急情况也越多,更加没有时间考虑系统优化的问题,如此往复,我们运维人员只能充当“消防员”的角色,哪里有火情,第一时间赶赴火场.
避免这种恶性循环的方法之一,就是在问题发生之前能够提前主动修复,修复的问题越多,紧急情况也就越少.
“工作四象限”中,也就是把更多的精力放在那些重要但不紧急的事情上,有条不紊,价值才能能到提升.
END
感谢您的阅读
转载请注明本页网址:
http://www.vephp.com/jiaocheng/4233.html