Linux 從程序相關的檔案描述中恢復資料

2021-09-01 21:20:41 字數 1358 閱讀 2948

在linux中誤刪除了某個檔案,但是 ps-ef|grep 檔名 發現某個程序還在使用該檔案,那麼可以通

過以下方式恢復檔案。

例如:建立乙個簡單檔案/tmp/test.txt, 隨便向裡面寫點內容

兩個client模擬,client1 負責開啟檔案less /tmp/test.txt(模擬占用執行緒)

client2 負責恢復檔案

恢復步驟(均在client2上執行)

1. 檢視/tmp/test.txt被占用的程序id

[root@host tmp]# ps -ef|grep test.txt

root     31631 31539  0 09:35 pts/0    00:00:00 less test.txt

root     31649 31579  0 09:36 pts/1    00:00:00 grep test.txt

2. cd /proc/31631/fd 資料夾中

3. 執行ll命令

[root@host fd]# ll

total 0

lrwx------ 1 root root 64 dec  3 09:36 0 -> /dev/pts/0

lrwx------ 1 root root 64 dec  3 09:36 1 -> /dev/pts/0

lrwx------ 1 root root 64 dec  3 09:36 2 -> /dev/pts/0

lr-x------ 1 root root 64 dec  3 09:36 3 -> /dev/tty

lr-x------ 1 root root 64 dec  3 09:36 4 -> /tmp/test.txt (deleted)

4. 發現了4是軟連線到 /tmp/test.txt 檔案中的

cat 4 即可找到刪除的檔案內容

以下是/proc目錄中程序n的資訊

/proc/n/cmdline 程序啟動命令 

/proc/n/cwd 鏈結到程序當前工作目錄

/proc/n/environ 程序環境變數列表

/proc/n/exe 鏈結到程序的執行命令檔案

/proc/n/fd 包含程序相關的所有的檔案描述符

/proc/n/maps 與程序相關的記憶體對映資訊

/proc/n/mem 指代程序持有的記憶體,不可讀

/proc/n/root 鏈結到程序的根目錄

/proc/n/stat 程序的狀態

/proc/n/statm 程序使用的記憶體的狀態

/proc/n/status 程序狀態資訊,比stat/statm更具可讀性

/proc/self 鏈結到當前正在執行的程序

Linux 從程序相關的檔案描述中恢復資料

在linux中誤刪除了某個檔案,但是 ps ef grep 檔名 發現某個程序還在使用該檔案,那麼可以通 過以下方式恢復檔案。例如 建立乙個簡單檔案 tmp test.txt,隨便向裡面寫點內容 兩個client模擬,client1 負責開啟檔案less tmp test.txt 模擬占用執行緒 c...

在Linux 中如何從程序相關的檔案描述中恢復資料

在linux中誤刪除了某個檔案,但是 ps ef grep 檔名 發現某個程序還在使用該檔案,那麼可以通 過以下方式恢復檔案。例如 建立乙個簡單檔案 tmp test.txt,隨便向裡面寫點內容 兩個client模擬,client1 負責開啟檔案less tmp test.txt 模擬占用執行緒 c...

Linux子程序繼承父程序的檔案描述符

include include include include include include include int main pid t pid int ret 0 int fd open temp.txt o creat o trunc o rdwr,0666 if fd 1 if pid f...