Linux运维小细节之回收站

作者:张岩峰,转载请注明出处     笔名:云烟旧梦

51CTO课程地址:https://edu.51cto.com/lecturer/12750547.html    Linux技术交流群:1127825548


        我们都知道“rm -rf”这个命令很危险,命令敲得多了,难免会失误。常在河边走,难免会湿鞋!

        在生产环境下,如果在你文件没备份,你一个手误,敲错了命令,把原本想要留下的文件夹给rm -rf掉了。几天心血全没了,靠,想死的心都有了!当然心态还得稳住!


几点教训:

        1、rm特别是rm -rf之前,小心,三四,或者直接将命令改写掉。

        2、做好备份,有便捷的备份脚本。

        3、做好定时备份,有个前辈搞定时脚本,每天定时自个执行,即使删错了也不会那么悲催。


        实验目的:我们就是要在linux服务器上弄一个windows系统上一样的回收站,这样即使我们删错了文件,也可以通过回收站找回,可以极大的减少我们的损失!(这是运维的一个小细节)


实验开始:

        rm命令被移除

        rl命令是查看回收站内容,相当于ls 回收站。

        ur命令是恢复指定文件。

        cleartrash命令是清空回收站。


首先,先搞个回收站

        [root@localhost ~]# mkdir -p ~/.trash

        在~下.bashrc或者bash_profile加入如下内容

        [root@localhost ~]# vi ~/.bash_profile

        alias rm=trash

        alias r=trash

        alias rl='ls ~/.trash'

        alias ur=undelfile


        undelfile()

        {

          mv -i ~/.trash/$@ ./

        }


        trash()

        {

          mv $@ ~/.trash/

        }

        [root@localhost ~]# . ~/.bash_profile

        注意:rm就相当于执行mv了,此时已经没有rm -rf了,删除的文件会在.trash中出现,所以我们就可以恢复回去了。


测试回收站主功能:

        创建/qq文件夹并删除,看一下回收站是否存在。

        [root@localhost ~]# mkdir /qq

        [root@localhost ~]# rl

        [root@localhost ~]# rm -f /qq

        [root@localhost ~]# rl

        qq        <==存在

        恢复回收站文件,需要指定文件名,或者可以直接进入文件夹mv出去!

        [root@localhost ~]# ll

        total 4

        -rw-------. 1 root root 1193 Nov 30 03:41 anaconda-ks.cfg

        [root@localhost ~]# ur qq

        [root@localhost ~]# ll

        total 4

        -rw-------. 1 root root 1193 Nov 30 03:41 anaconda-ks.cfg

        drwxr-xr-x. 2 root root    6 Feb  3 22:49 qq

        注意:使用ur命令恢复文件只会将文件恢复到用户家目录下。

        测试结束!


这里就出现了一个问题,如果删除回收站里的东西,rm命令在这里是没用的。

        在.bashrc加函数

        [root@localhost ~]# vi .bashrc

        cleartrash()

        {

        read -p "clear sure?[n]" confirm

        [ $confirm == "y" ] || [ $confirm == "Y" ] && /usr/bin/rm -rf ~/.trash/*

        }

        $..bashrc

        [root@localhost ~]# . ~/.bashrc

        然后,如果想清空回收站的话,使用“cleartrash”命令就可以了。


测试回收站清空功能:

        [root@localhost ~]# rl

        [root@localhost ~]# rm -f qq/

        [root@localhost ~]# rl

        qq

        [root@localhost ~]# cleartrash 

        clear sure?[n]y

        [root@localhost ~]# rl

        清空了!

        测试结束!

        至此实验结束!


上一篇:Linux运维小细节之回收站(二)


下一篇:Linux文件夹权限递归修改