LINUX不小心執行了rm -f[誤刪檔案],先別急著跑路[救回誤刪檔案]

LINUX不小心執行了rm -f[誤刪檔案],先別急著跑路[救回誤刪檔案]

LINUX不小心執行了rm -f[誤刪檔案],先別急著跑路[救回誤刪檔案]


資料來源:https://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw==&mid=2247490140&idx=1&sn=75f53905a70ed0e84aed6ddad2f71048&chksm=eb539f6adc24167c68a9d574eb053be7e8dd24e0e06c5774e6372d5b55bb0b38c99a10e8be75&scene=0&xtrack=1&key=c1d9be75f61b5f6b5f6fd5b8fd2efa5ae991220b4e31f719945be8eee90326cc35502e218b5e79dba9f09500f49ba41bc0215dc4e0b30f9578f12b3c6e4b3934c2bf915f57d77a40f6ebe84a0ad0bbbf&ascene=1&uin=MjIwODk2NDgxNw%3D%3D&devicetype=Windows+10&version=62060833&lang=zh_TW&pass_ticket=sJh2JehbaR9lsCnDVP4CXdd228nDle3O0DrRn5mGdtS4ida5J7xetJiH0RIQ9KE9



01.誤刪除服務器目錄/root/selenium/Spider下的MySql.Data.dll文件

> rm -f /root/selenium/Spider/MySql.Data.dll 
> ll /root/selenium/Spider/MySql.Data.dll 
ls: cannot access /root/selenium/Spider/MySql.Data.dll: No such file or directory


02.使用lsof命令查看當前是否有進程打開/root/selenium/Spider/MySql.Data.dll文件

> lsof | grep /root/selenium/Spider/MySql.Data.dll

從上面可以看出,當前文件狀態為已刪除(deleted)。


03.查看是否存在恢復數據:

> cat /proc/13067/fd/86

/proc/13067/fd:進程操作的文件描述符目錄。
86:文件描述符。[從步驟2得知]


04.使用I/O重定向恢復文件

> cat /proc/23778/fd/86 > /root/selenium/Spider/MySql.Data.dll 
> ls -l /root/selenium/Spider/MySql.Data.dll 
-rw-r--r-- 1 root root 702464 Feb 10 12:03 /root/selenium/Spider/MySql.Data.dll

前面的模擬場景演示了恢復文件的整個過程,那麼原理是什麼,在什麼情況下,文件才是可恢復的。
在Linux系統中,每個運行中的程序都有一個宿主進程彼此隔離,以/proc/進程號來體現(Linux本質上就是一個文件系統),比如:ls -l /proc/13067查看進程PID為13067的進程信息。
當程序運行時,操作系統會專門開闢一塊內存區域,提供給當前進程使用,對於依賴的文件,操作系統會發放一個文件描述符,以便讀寫文件,當我們執行rm -f刪除文件時,其實只是刪除了文件的目錄索引節點,對於文件系統不可見,但是對於打開它的進程依然可見,即仍然可以使用先前發放的文件描述符讀寫文件,正是利用這樣的原理,所以我們可以使用I /O重定向的方式來恢復文件。

如果不小心誤刪了文件,不要著急,首先使用lsof 查看打開該文件的進程,然後再使用cat /proc/進程號/fd/文件描述符查看恢復數據,最後使用I/O重定向的方式來恢復文件。

5 thoughts on “LINUX不小心執行了rm -f[誤刪檔案],先別急著跑路[救回誤刪檔案]

  1. 創世人回應,員工刪庫跑路,公司市值暴跌10億始末!

    https://mp.weixin.qq.com/s?__biz=MzI4NDY5Mjc1Mg==&mid=2247490867&idx=1&sn=8df2732046d480df91aee4fc78ff76fe&chksm=ebf6c54cdc814c5abf01cefd575916b6fdce5364271a4c99e699cae75f401008fb7650b58707&scene=126&sessionid=1582854799&key=3da213d245c0d5c468bca9d6b155301b933a53f7e8b3c83b3c2ddd915a8a3c4b6ada42c67c0fbd409df80f1a054cf861d0b75b32ad757d889798a6caf838d44bf7d149d4c470f46b348d829e4e13e308&ascene=1&uin=MjIwODk2NDgxNw%3D%3D&devicetype=Windows+10&version=6208006f&lang=zh_TW&exportkey=AtzH%2B8BBrAJyd708H5fPe80%3D&pass_ticket=f1r167TSzeNSJIaf54XAaVC645GEE8h4MiHMrDGRIBQpJA6itQa9PBaZWrd6upr6
    https://mp.weixin.qq.com/s?__biz=MzI4NDY5Mjc1Mg==&mid=2247490706&idx=1&sn=d025d0e12012cfefbb4891b94ce9fa9b&chksm=ebf6c4eddc814dfb7d36d47a484ab35c47008dc69ac2205dc0dad77a0036a8198abcc6086f3d&scene=21#wechat_redirect

    也就是前不久,我寫了一篇文章《“刪庫跑路”這件事情真的發生了,還是技術總監幹的!》報導了2018年的一起刪庫事件。

    當事人對公司離職處理不滿,離職後遠程登錄公司服務器,刪除了部分索引,引發公司服務宕機,最後這名技術總監被判刑2年多。

    文章發出去後和這家公司員工還聊過兩句,很可惜就這樣毀了一個高材生的職業生涯,當然那個公司的老闆處理事情肯定也有問題。

    但微盟的事件可比這個嚴重多了!

    微盟刪庫跑路事件始末

    微盟這次刪庫事件比上次可以說嚴重N倍,也許是目前為止國內刪庫最嚴重的事故之一,當天直接造成公司市值損失近10億,影響超過300萬商戶。

    目前,當事人已經被警察拘留,未來難免會受到刑事處罰,一時衝動斷送了自己的職業生涯,也對公司、大量商戶造成了巨大的影響。

    下面我們按照時間線,來看看整個事件發生的始末。

    ① 事情從2月23號晚說起

    2020年2月23號19:00左右,當時微盟公司的SaaS業務突然崩潰,而基於微盟的商家小程序都處於宕機狀態,300萬商戶生意基本停擺。

    第一時間,微盟收到系統監控警報,發現是SaaS業務服務出現故障,隨後立即召集相關技術人員進行排查,發現微盟服務器遭到了嚴重破壞。

    隨後微盟開展調查,最終發現運維賀某,於2月23號晚18點56分,通過個人VPN登入公司內網跳板機,對微盟線上生產環境進行惡意破壞,直接導致這場事故的發生。

    技術團隊開始緊急處理,嘗試對生產環境和數據進行恢復。

    ② 2月24號:官方回應商家,並選擇報警

    微盟於2月24號向寶山區公安局報案,當天市場上聽到這個消息,隨即反應到了微盟股價,市值一日之內蒸發約12.53億港元。

    2月24號晚間,微盟官網掛出公告稱,由於技術故障,導致當前微盟官網的服務停用,目前正在緊急修復中,服務恢復預計還需要24-48小時。

    微盟將努力協助商戶解決遇到的問題,同時公司正在擬定相關補償方案。

    一時間微博上商戶吐槽聲音不斷,甚至還上了微博熱搜 …

    ③ 2月25號:微盟發布正式通告,稱渡過了煎熬的36小時

    2月25號,微盟官方宣稱,微盟的業務系統數據庫(包括主備)都被公司核心運維員工賀某刪除,該員工已被刑拘。

    同時簡單說明了整個事件,稱生產環境和數據修復都在有序進行,預計當天截止24時生產環境修復完成,老用戶的數據預計28日修復完成。

    稱對於本次事件遭遇損失的商家,微盟會擬定一定的賠償。

    騰訊雲25號也發布微博稱,微盟運維事故發生後,騰訊雲的技術團隊已經在第一時間與微盟接觸,研究制定修復方案。工程師們正在日夜趕工,將盡最大努力協助微盟降低損失。

    ④ 2月26號:微盟稱核心系統已經恢復

    2月26號微盟集團發布核心業務恢復服務的通知,稱微盟微商城、智慧零售、微站業務已經正式恢復服務,微盟新用戶可以直接註冊開通使用。

    由於數據還在修復過程中,為避免產生臟數據,老用戶可重新註冊新賬戶,微盟將為老用戶開通付費版本,等數據恢復後,會把新老賬號數據進行合併。

    ⑤ 2月27號:創始人回應

    關於這名運維人員為什麼會有這種極端的行為,官方給出的原因比較模糊:因個人精神、生活等原因對微盟線上生產環境進行了惡意的破壞。

    於是網友們進行了各種各樣的猜測,有的說是老闆過分壓迫員工、有的稱是老闆和員工的私生活有關,可能無意調侃,也可能純屬瞎猜。

    傳言越來越多時,創始人看不下去了,27號,針對此事件進行了正式回复。

    創始人孫濤勇回應稱,該名員工一直以來表現良好,績效優秀,還被列為公司潛力人才培養目標。事後通過警方了解,該員工一直深陷網絡貸,還曾有過輕生,該員工春節期間一直沒有回家。

    由於疫情階段不能外出,只能一個人在房間獨處了30多天,加上本身經濟上的困擾,就做出了這樣的舉動。

    孫濤勇說:“ 我想這也是他選擇一種自己解脫的方式吧,而我對他又痛恨又逐步轉向了同情。”

    以上便是整個事件發生的始末,接下來我們再來了解下,微盟是一家甚麼樣的公司,以及這次事件為什麼如此嚴重?

    2

    微盟是一家甚麼樣的公司

    據微盟官網介紹,微盟集團(Weimob Inc.)為香港主板上市企業(股票代碼:2013.HK),現有員工超3200人,渠道代理商超1600家,註冊商戶超300萬,是中小企業雲端商業及營銷解決方案提供商,同時也是騰訊社交網絡服務平台中小企業精準營銷服務提供商。

    用大白話來講,就是給微商、中小企業、個體商戶在微信體系內開店、賣貨提供系統服務的公司,主要提供的服務在微信生態內,所以微盟和騰訊之間綁定得比較深。

    本次事件發生時競爭對手有贊也發出公告,稱有贊提供2週免費開店的服務,幫商家重建小程序和店鋪。這個動作有點爭議,有人稱是幫助商家,有的說是落井下石。

    值得一提的是微盟的創始人很厲害,孫濤勇出生於1987年,在2013年(當時他才26歲)時與合夥人帶著16名的創業團隊、50萬元啟動資金創立微盟。

    2017年,就入選福布斯“亞洲30歲以下傑出人物榜”,為了上市中間有一些波折,最終32歲時帶領微盟走向港股上市,目前微盟市值122億港元。

    1. 居家隔離最該怕的一件事叫「工程師抓狂」!中國電商員工在家上班,一個不爽就把整個商城的資料庫刪了

      https://www.techbang.com/posts/76714-in-the-10-days-after-the-deletion-the-humbleness-and-arrogance-of-the-micro-union

      「微盟」是中國最大的智慧商業服務提供商之一,主要業務是為中小商戶提供微商城、小程式、餐飲 o2o 等解決方案。比方說你想搭建一個小程式或網頁用來賣貨,但沒有開發能力不知道怎麼下手,使用微盟的服務便可以省去這方面技術上的困擾,直接上傳相關素材設計頁面,銷售商品管理訂單等。

      2020 年 2 月 23 日晚間,全國大大小小使用微盟服務的線上商戶都陸續發現管理後台出現了問題,有的是因為無法登入介面操控系統,有的是因為顧客發現商城崩潰後詢問。

      事故來自於微盟研發中心運維部的核心員工賀某,由於在疫情期間在家上班,他在家透過 VPN 登入內網跳板機,對微盟的資料庫進行了破壞,致使大部分客戶資料丟失。

      微盟為商戶提供的是軟體技術服務,而執行這些程式的系統則需要靠伺服器的計算執行來支撐。微盟選擇的方案是租賃騰訊雲的黑石物理伺服器,與自己線下購買搭建伺服器相比,使用雲服務在維護管理方面更省心,財務上的資產支出款項也會更輕量。

      微盟的資料庫分為兩部分:從騰訊雲租賃雲資料庫(CDB),和自建 MySQL 資料庫。前者由騰訊雲統一管理,企業可節省運維成本,可享受的備份、恢復等服務也較多;後者的訪問權限掌握在企業自己手中,微盟的大部分核心資料都存放於此。

      根據騰訊雲《微盟數據被刪後的七天七夜》一文中的表述,這位微盟的工程師「運維人員用一種讓程式員聞風喪膽的Linux系統下文件刪除命令,整體進行了不可逆的刪除」,以及恢複數據過程之漫長艱難,可以大致判斷,賀某是使用「rm -rf /*」命令,刪除了自建資料庫(包含備份)。你大概可以理解為「shift + delete」,被刪除的文件一般都難以恢復。

      我們前面提到,微盟還有一部分數據存放在騰訊雲資料庫,這部分內容並沒有受影響。但由於幾乎所有與商戶有關的核心數據,如客戶和訂單訊息,這些全都在自建資料庫中,賀某的刪庫操作便足以讓微盟幾乎所有的業務全線崩盤。

      運維員工輕鬆完成如此危險重大的操作,說明微盟在權限設置等方面存在著嚴重的數據安全管理缺陷,作為一家上市公司來說這顯然是反常的。

      □ 已刪除的數據如何恢復

      由於被刪的資料庫為微盟自建,因此,想找回這些數據,必須靠微盟自己著手主導。但受限於技術能力和儲備,微盟團隊只能在第一時間向有技術合作的騰訊雲求助。

      據騰訊雲團隊說明,雙方在恢複數據過程主要分為三個大的時間節奏:

      第一,控制受損面。不能讓現在還有機會找回的數據及其伺服器再發生任何的問題;第二,透過專業的軟體和團隊,掃瞄硬碟找回數據;第三,由微盟自己進行業務的上線、調試演練等一系列工作。

      三個步驟看起來簡單,但實際上每一步都涉及大量技術細節,需要許多這方面的專業人員去花費精力操作監守,其中以第二步最為困難。

      據悉,由於備份伺服器上的文件類型更單一,數據更集中,因此騰訊雲技術團隊選擇了從備份伺服器入手。但找數據,也並不是把數據找到就可以了那麼簡單。

      首先,由騰訊內部技術團隊大海撈針般掃瞄硬碟,提取出所有被刪的隱藏數據(這一步已經需要耗費許多時間),然後將這些零碎的數據挨個嘗試拼接,恢復出原貌。數據恢復後交給微盟,由微盟的團隊驗證是否為可用數據,能否導入資料庫,能否正常載入至伺服器。

      為了方便理解,我們可以把硬碟比喻為筆記本,數據文件即為寫在本子上的文章語句。賀某的刪庫動作相當於將所有字跡擦除,還把整個本子撕碎。而騰訊雲需要做的,便是透過紙張上面的筆尖壓痕猜測對應的文字筆劃,並將這些碎片拼湊為完整的字段。

      而之前寫筆記本的微盟,在拿到這些字段之後,也需要去繼續驗證它們是否為對的文字,是否屬於同一篇文章,組合之後語義有無問題。隨後,微盟還需要將這些文章念出來,審核是否完全沒問題。

      所以我們可以看到,當微盟在七天後的公告中表示「數據已全面找回」時,並不意味著業務產品已經正常,而是還需要經過上線演練,才能恢復整個系統。

      □ 數萬商戶共擔人禍

      「公告說恢復了,我們這邊後台看根本沒有!」

      方陽是一家電商的 CEO,從 2019 年開始使用微盟搭建小程式。他和團隊花了半年多的時間調整版面設計、修改產品圖等等,終於將小程式商城裝修得有模有樣。

      1 月底疫情爆發,他的店舖隨之開始售賣酒精和手套等防護用品,銷量上漲,年前售出了五千多單。就在他和團隊準備發貨時,微盟後台崩潰,訂單詳情無法查看,他不知道該把貨物發到哪裡,顧客也著急,透過各種通路找到他的聯繫方式催發貨和投訴。

      和方陽一樣焦急的商戶還有很多,他們都在刪庫後數次聯繫客服,但得到的回應基本都是「再等等;我們也不清楚;應該過兩天就好了」。

      2 月 25 日,微盟發佈通告,表示生產環境即將修復完成,可為老使用者提供臨時過渡方案——即重新搭建一個新的商城,以在全面恢復前能完成其他新交易。微盟的競爭對手有贊也趁機在各個社群平台騷擾受害商家,表示可以幫助免費重建過渡。

      「怎麼可能呢?我們之前花了大半年才搭好,重建的話,一天一個人力撐死也就只能上 20 多個商品。然後產品圖一直在更新也都存在後台的素材庫裡,找回來難,重新做更花時間。」

      方陽補充道,「而且微盟那邊一直說過兩天就恢復了,那我們還費這個力幹嘛」。

      方陽的業務為純電商,受刪庫最大的影響便在於事故期間的訂單流失。對於商品時效性更強和涵蓋線下業務的商舖來說,打擊更為深遠和致命。

      「最讓人氣憤的是微盟只從自己利益出發,對於事故一直是推諉、隱瞞真相。他們也不給我們明確的恢復時間,讓我們無法進行下一步的工作安排。」

      □ 一次本可以避免的事故

      而微盟作為一個上市企業,事發當日市值就跌掉了9億人民幣,事後還需要給這些商家進行賠償,單是這就不是一筆小數目。

      許多人在感嘆微盟真倒霉、這名員工一輩子就完了,同時又在質疑該員工刪除資料庫的原因?不應該僅僅是因為疫情在家辦公吧!於是,坊間出現了三種傳聞:

      第一種就是公司問題,當前市場環境下,公司為了生存,只能把壓力轉嫁給員工。

      第二種是員工欠了高利貸,長期壓力之下,做出刪庫的行為。

      第三種稱該員工的老婆被高管睡了,之後高管還要將其開除。

      雖然這只是坊間傳聞,但對於圍觀的網友來說,當然更相信第三種傳聞,更有人直接點名說是微盟創始人孫濤勇。

      微盟創始人兼CEO孫濤勇,最後就此事發表的一篇聲明,將這件內部員工刪除資料庫的原因向外界公開,講的很模糊,但也算是一個官方版本的原因。

      27號下午,微盟創始人孫濤勇對這件事做出回應:微盟倖免於這次「天災」,卻不料一場“人禍”讓微盟處於無比艱難的境地,微盟剛剛經歷了疫情期間謠言滿天飛,現在也遭遇了同樣的謠言。

      文中對於該員工刪庫原因孫濤勇表示這是一個社會問題,當時不想放大。通過警方了解到這名員工一直深陷網貸中,曾想過自殺,再加上疫情階段在家30天沒有外出,加上經濟困擾,導致這樣的結果。

      「該員工春節期間一直沒有回家,由於疫情階段不能外出,只能一個人在房間獨處了30多天,加上本身經濟上的困擾,就做出了這種舉動,事後他也說跟公司無任何仇恨,我想他是在選擇一種自己解脫的方式吧,這也是為什麼事後沒跑路,也很快承認了犯罪事實。」

  2. A:
    rm -rf 很可怕,這種事我幹過,尤其是疲勞的時候,很容易沒意識到現在所在目錄
    這事告訴我們,加班的時候別做會有重大影響的事
    下 rm -rf 的時候,一定要再三確認過所在目錄

    B: 隨便
    我都用GUI

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *