新聞中心
[[422981]]

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的包頭網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
本文轉(zhuǎn)載自微信公眾號(hào)「小姐姐味道」,作者小姐姐養(yǎng)的狗。轉(zhuǎn)載本文請(qǐng)聯(lián)系小姐姐味道公眾號(hào)。
今天感冒剛好,又找到了文風(fēng)飄逸的感覺(jué),打字手也不抖了。好久沒(méi)有這么掌筆,得讓新到的朋友們體驗(yàn)一下飛翔的感覺(jué)。否則把灑家當(dāng)成了一個(gè)小小的運(yùn)營(yíng),那就無(wú)趣的很。
小的時(shí)候,村里有個(gè)理發(fā)師,功夫十分了得。你在座位上坐好之后,只見(jiàn)刀光劍影刷刷幾下,鰓毛抖動(dòng)之間,就能獲得滿意的發(fā)型。即使是剃個(gè)光頭的需求,也能快速完成。
完事之后,剃頭刀上不會(huì)占有半點(diǎn)鮮血和毛發(fā)。
我很羨慕他的刀。
到底是他的刀厲害?還是他的人厲害?明白事理之后,我明白了是后者,而不是他手中的屠龍?zhí)觐^刀!
隨著年齡越來(lái)越大,我踏上了編程這條道路。一次偶然的原因,看到同事上上下翻飛的運(yùn)行rm命令,勾起了我久遠(yuǎn)的、對(duì)刀的回憶。
跨上一把刀,行走天下,是一件非常瀟灑的事。rm這個(gè)命令,圓你的武俠夢(mèng),很合適。只要它所到之處,玉石俱焚,寸草不生。
獲取這把刀的成本很低,你只要會(huì)使用Linux就行了。顯然,人人都擁有這么犀利的刀,會(huì)引起混亂。
如果你的功力不夠,掌控不了這把刀,那么就會(huì)被它反噬;如果你對(duì)它不尊重,它也會(huì)誤傷到你自己,不留一點(diǎn)情面;如果你心存惡念,它就能在瞬間滿足你。
每一年,都有好多人因?yàn)槲璧秱搅俗约?,或者傷了人進(jìn)了局子。
在rm命令的刀下,是無(wú)數(shù)血淚堆砌的故事,每個(gè)故事都讓你潸然淚下,或者露出兔死狐悲的哀傷。
rm這個(gè)命令,到底是殺雞刀,還是殺牛刀?要看掌刀的人;是束之高閣,還是藏在袖中,要看是否還心存熱血。
但現(xiàn)實(shí)的生活總不會(huì)讓情緒發(fā)泄的太澎湃。多為多年混社會(huì)的人,我們?cè)缫呀?jīng)學(xué)會(huì)了忍耐。當(dāng)你的命令行輸入到了rm -rf /,會(huì)不由自主的再按下回退鍵。就像烏龜發(fā)現(xiàn)了殼外的危險(xiǎn),把龜頭緊緊縮在殼里面。
雖然憋屈了一點(diǎn),但畢竟安全。
安全只是暫時(shí)的
但安全,只是暫時(shí)的。
有一次,有一個(gè)偉大的布道者,和自己的小弟們普及命令行知識(shí)。他聊到了rm -rf。
出于對(duì)寶刀的熱愛(ài),就像真正愛(ài)刀的人,會(huì)用自己的舌頭和口水,舔凈刀上污漬直到一塵不染。他打開(kāi)了一個(gè)命令行終端,輸入了rm -rf /這個(gè)命令。
“這是一個(gè)危險(xiǎn)的命令!”,他說(shuō),“你們永遠(yuǎn)不要在線上環(huán)境運(yùn)行”。
旁邊的小迷弟小迷妹們都很一臉崇拜的看著他,聆聽(tīng)教誨。
好久沒(méi)有這么讓人陶醉的感覺(jué)了,他不由自主滔滔不絕的講解了起來(lái),毫無(wú)察覺(jué)自己的胳膊肘子壓上了鍵盤(pán),蜻蜓點(diǎn)水一樣觸了一下Enter鍵。
以實(shí)際行動(dòng)來(lái)驗(yàn)證,從實(shí)踐中出真知,是互聯(lián)網(wǎng)人一貫的作風(fēng)。
屏蔽起來(lái)
當(dāng)這種翻車事故變得越來(lái)越多,我們就更能了解到rm的兇殘。尤其是,一些不注意的條件,就讓shell腳本成為觸發(fā)的元兇。
電子信息不同于現(xiàn)實(shí)中的物品,你只要銷毀了它,它可能就真的永遠(yuǎn)消失了,就如同靈魂一樣。為了保證一定程度的安全,我們可以把rm命令變成一個(gè)垃圾桶。
首先,創(chuàng)建一個(gè)垃圾桶。
- mkdir ~/.Trash &> /dev/null
- chmod 777 ~/.Trash
然后,把原生的rm命令給廢掉。
- alias rm="sh /usr/bin/rm.sh"
簡(jiǎn)單的rm腳本可能長(zhǎng)這個(gè)樣子。
- #!/bin/bash
- while [ ! -z "$1" ]; do
- mv "$1" ~/.Trash/
- shift
- done
當(dāng)然,我們這只是一個(gè)簡(jiǎn)單的腳本。但無(wú)論你做的再周詳,也阻止不了誤刪。比如,將rm -R ./lib/寫(xiě)成了rm -R /lib/。
把文件找回來(lái)
在Linux下面,除非是作死的rm -rf /,誤刪一兩個(gè)文件,還是有機(jī)會(huì)找回來(lái)的。要想徹底的銷毀文件,你需要使用shred命令。
rm刪掉的文件,其實(shí)只是將指向數(shù)據(jù)塊的索引點(diǎn)(information nodes)釋放,只要不被覆蓋,數(shù)據(jù)其實(shí)還在硬盤(pán)上。
只要你刪除文件之后,沒(méi)有再覆寫(xiě)區(qū)塊的數(shù)據(jù),那就有很大概率找回來(lái)。就像你刪除了一個(gè)運(yùn)行時(shí)的文件,你使用lsof命令,依然能夠看到/var/log/messages (deleted)類似的字樣。
如果你刪除的文件還被別的進(jìn)程所使用,那么恭喜你,你可以直接找到它。比如使用的進(jìn)程id是996,那么文件就躺在/proc/996/fd/下面。
所以不小心刪掉之后,反射弧不宜過(guò)長(zhǎng)。不能等一兩天之后,突然就一哆嗦:哎吆wocao?我的文件怎么不見(jiàn)了?
如果并沒(méi)有進(jìn)程使用這些文件,那就麻煩了一些。首先,你得停止你的爛七八糟的進(jìn)程,還原一個(gè)干干凈凈的機(jī)器,免得文件被覆蓋。如果你還不放心,直接unmount分區(qū)。
然后,恢復(fù)文件還得借助工具,比如extundelete。
End
如果你因?yàn)閞m這把刀,傷到了自己,以至于坐牢,那你一定在一個(gè)比較2的公司。
有點(diǎn)安全意識(shí)到公司,肯定不會(huì)因?yàn)閞m這么兩個(gè)字母就停擺了。刪根?不好意思,我們業(yè)務(wù)機(jī)器有多個(gè)節(jié)點(diǎn),你只是xx分之一;刪庫(kù)?不好意思,我們有熱備冷備,甚至不同的業(yè)務(wù)有不同的庫(kù)表,你認(rèn)為刪除物理文件就能搞死公司,妄想!
但即使如此,也要管住自己的手。因?yàn)橛行┕窘锝镉?jì)較,并不是你想象得那么善良。不管你是主觀故意還是因?yàn)槭侄?,最后免不了一堆麻煩。沒(méi)人會(huì)為低級(jí)錯(cuò)誤擦褲子,只能運(yùn)行命令的人獨(dú)自承受。
在打工、賺錢(qián)的同時(shí),首先保護(hù)自己才是最重要的。所以,你有啥想不開(kāi)的?要用rm -rf命令?僅僅是想要弘揚(yáng)你俠士的風(fēng)范么?
你要明白,做一個(gè)合格的小程序員,小運(yùn)維,并不比理發(fā)師安全多少。寶刀在手,可以削蘋(píng)果,可以開(kāi)瓶蓋,也可以分蛋糕,但從來(lái)不會(huì)血濺當(dāng)場(chǎng)。因?yàn)槲覀兪俏拿魅恕?/p>
作者簡(jiǎn)介:小姐姐味道 (xjjdog),一個(gè)不允許程序員走彎路的公眾號(hào)。聚焦基礎(chǔ)架構(gòu)和Linux。十年架構(gòu),日百億流量,與你探討高并發(fā)世界,給你不一樣的味道。
當(dāng)前文章:Rm好兇殘,太TM嚇人了!
URL鏈接:http://www.dlmjj.cn/article/coegjid.html


咨詢
建站咨詢
