运维开发网
广告位招商联系QQ:123077622
 
广告位招商联系QQ:123077622

Linux运维小细节之回收站(一)

运维开发网 https://www.qedev.com 2021-04-08 22:44 出处:51CTO 作者:ssdsscvsscg
作者:张岩峰,转载请注明出处     笔名:云烟旧梦51CTO课程地址:https://edu.51cto.com/lecturer/12750547.html    Linux技术交流群:1127825548        我们都知道“rm -rf”这个命令很危险,命令敲得多了,难免会失误。常在河边走,难免会湿鞋!        在生产环境下,如果在你文件没备份,你一个手误,敲错了命令,把原本想

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

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命令是清空回收站。

首先,先搞个回收站

        [[email protected] ~]# mkdir -p ~/.trash

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

        [[email protected] ~]# vi ~/.bash_profile

        alias rm=trash

        alias r=trash

        alias rl='ls ~/.trash'

        alias ur=undelfile

        undelfile()

        {

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

        }

        trash()

        {

          mv $@ ~/.trash/

        }

        [[email protected] ~]# . ~/.bash_profile

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

测试回收站主功能:

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

        [[email protected] ~]# mkdir /qq

        [[email protected] ~]# rl

        [[email protected] ~]# rm -f /qq

        [[email protected] ~]# rl

        qq        <==存在

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

        [[email protected] ~]# ll

        total 4

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

        [[email protected] ~]# ur qq

        [[email protected] ~]# 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加函数

        [[email protected] ~]# vi .bashrc

        cleartrash()

        {

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

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

        }

        $..bashrc

        [[email protected] ~]# . ~/.bashrc

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

测试回收站清空功能:

        [[email protected] ~]# rl

        [[email protected] ~]# rm -f qq/

        [[email protected] ~]# rl

        qq

        [[email protected] ~]# cleartrash 

        clear sure?[n]y

        [[email protected] ~]# rl

        清空了!

        测试结束!

        至此实验结束!

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号