linux文件只讀怎么解決 如何恢復(fù)LINUX中意外刪除的文件?
如何恢復(fù)LINUX中意外刪除的文件?當(dāng)進(jìn)程打開某個(gè)文件時(shí),只要該進(jìn)程盡量可以打開該文件,即使將其刪出,它依然存在于磁盤中。這意味著,進(jìn)程并到底文件早被刪除,它仍舊可以不向然后打開該文件時(shí)提供給給它的文
如何恢復(fù)LINUX中意外刪除的文件?
當(dāng)進(jìn)程打開某個(gè)文件時(shí),只要該進(jìn)程盡量可以打開該文件,即使將其刪出,它依然存在于磁盤中。這意味著,進(jìn)程并到底文件早被刪除,它仍舊可以不向然后打開該文件時(shí)提供給給它的文件描述符通過讀取數(shù)據(jù)和中寫入。除開該進(jìn)程之外,這個(gè)文件是決不可見的,畢竟早就徹底刪除了其你所選的目錄索引節(jié)點(diǎn)。在這種情況這個(gè)可以按照lsof來可以恢復(fù)這些文件。
在/proc目錄下,其中乾坤二卦了上級(jí)主管部門內(nèi)核和進(jìn)程樹的各種文件。/proc目錄攜掛的是在內(nèi)存中所折射的一塊區(qū)域,所以才這些文件和目錄的確未知于磁盤中,并且當(dāng)我們對(duì)這些文件參與讀取和讀取時(shí),事實(shí)上是在從內(nèi)存中查看相關(guān)信息。大多數(shù)與lsof相關(guān)的信息都存儲(chǔ)位置于以進(jìn)程的PID以此命名的目錄中,即/proc/12中中有的是PID為12的進(jìn)程的信息。每個(gè)進(jìn)程目錄中必然著各種文件,它們是可以使應(yīng)用程序簡(jiǎn)單的地了解進(jìn)程的內(nèi)存空間、文件描述符列表、打向磁盤上的文件的符號(hào)鏈接和其他系統(tǒng)信息。lsof程序在用該信息和其他關(guān)於內(nèi)核內(nèi)部狀態(tài)的信息來有一種其輸出。因此lsof也可以顯示進(jìn)程的文件描述符和相關(guān)的文件名等信息。也就是我們是從訪問網(wǎng)絡(luò)進(jìn)程的文件描述符可以不不能找到該文件的去相關(guān)信息。
下面舉例
我/tmp目錄下修改了腳本文件,此時(shí)此刻在后臺(tái)運(yùn)行,但是tmp異日會(huì)被系統(tǒng)有定時(shí)刪出的,但發(fā)懶我也不想寫回腳本,想把原來的可以找回,步驟如下。
1.一欄已經(jīng)被刪除的文件,巳經(jīng)不存在了
[~]#ll/tmp/
total28
-rw-r--r--1rootroot402Sep2614:19load_
srwxrwxrwx1mysqlmysql0Sep1615:20
drwx------2rootroot4096Oct1215:44ssh-hiPBw10887drwx------2rootroot4096Oct1016:12ssh-lUXbjf6337
2.可以使用lsof來打開系統(tǒng)當(dāng)前哪個(gè)進(jìn)程正在然后打開文件”“
[~]#lsof|grepdiamon
sh8455root255rREG253,0173764298(deleted)
[~]#
從上面的輸出看的到,進(jìn)程8455正在以可讀可寫的然后打開這個(gè)文件,打開的文件描述符為255,另外文件被標(biāo)記刪掉。然后再我打開系統(tǒng)文件/proc/8455/fd/255
[~]#more/proc/8455/fd/255
#variables
dir/tmp
while(true)
unit
v_num`ps-ef|grepload_tab|grep-vgrep|wc-l`
if[$v_num-lt4]then
sh/tmp/load_a8/dev/null2gtamp1amp
fi
work
[~]#
3.也能找到巳經(jīng)被徹底刪除的文件了嗎然后用來I/O重定向?qū)⑵淇梢曰謴?fù)到重新指定文件中,如下
[~]#cat/proc/8455/fd/255gt
檢查文件已經(jīng)被完全恢復(fù)了
[~]#ll/tmp
total36
-rw-r--r--1rootroot173Oct1216:53
-rw-r--r--1rootroot402Sep2614:19load_
srwxrwxrwx1mysqlmysql0Sep1615:20
drwx------2rootroot4096Oct1215:44ssh-hiPBw10887drwx------2rootroot4096Oct1016:12ssh-lUXbjf6337
[~]#
查找復(fù)原的文件內(nèi)容是否是正常了
[~]#
[~]#more
#variables
dir/tmp
while(true)
章
v_num`ps-ef|grepload_test|grep-vgrep|wc-l`
if[$v_num-lt4]then
sh/tmp/load_rlm/dev/null2gtamp1amp
fi
done
[~]#
眼下linux完全恢復(fù)刪除文件成功已經(jīng)結(jié)束
歸納:
A.在文件被刪掉時(shí),不要驚慌,盡可能存放現(xiàn)場(chǎng)
B.相對(duì)于某些數(shù)據(jù)庫(kù)文件被意外刪除很最有效
如何在Linux單用戶模式下修改fstab文件?
Linux重設(shè)單用戶模式進(jìn)入到系統(tǒng),當(dāng)直接修改/etc/fstab文件時(shí)提示文件可讀寫,根本無法可以修改詳細(xì)修改有兩種方法一、進(jìn)入到Linux單用戶模式a.在系統(tǒng)進(jìn)入到centos數(shù)秒的時(shí)候按字母e,進(jìn)入GRUB編輯狀態(tài)b.選擇以單詞kernel起頭的這行,按動(dòng)e鍵以編輯這個(gè)命令行c.在末尾輸入空格large,回車d.再按b鍵程序加載#mount-oremount,rw/f.后再vi/etc/fstab剛剛進(jìn)入修改方法二、用光盤直接進(jìn)入Linux修復(fù)模式(光盤啟動(dòng)時(shí)按F2隨后輸入輸入linuxrescue回車進(jìn)入)接著如何修改fstab盡量直接進(jìn)入自動(dòng)修復(fù)模式后fstab路徑為vi/mnt/sysimage/etc/fstab