《如何優雅的使用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.snjht.com/jiaocheng/4233.html