linux - Ubuntu服务器有回收站吗?误删了某些文件,能找回来吗?
阿神
阿神 2017-04-17 14:34:05
0
5
1495

我用的某台服务器是Ubuntu14.04,现在我在里面误删了两个文件夹,导致除了一下问题。

按照正常的思路,想找回收站,从回收站中再mv回来。但是网上转了一圈,似乎都说是在 /.Trash或者/.local/xxx 这样的目录下,但是我这没有这些目录啊,貌似这是桌面版的吧?

所以请问有没有什么简单的方法能恢复回来的?

阿神
阿神

闭关修行中......

全部回覆(5)
刘奇

首先可以告訴​​你沒有回收站

找回文件用testdisk試試

迷茫

如果是雲端伺服器的話看看有沒有每日自動備份,有的話直接回滾,否則就基本回天乏術了,所以操作伺服器得極其小心才是。

Ty80

linux 上
請不要刪東西
請不要刪東西
請不要刪東西
修改檔案前先備份:

cp yourfile{,`date +"%Y%m%d"`}

如果要刪除檔案:

mv yourfile{,bak}

可刪的檔案只有一種: 無用的日誌檔案
可刪的檔案只有一種: 無用的日誌檔案
可刪的檔案只有一種: 無用的日誌檔案

迷茫

伺服器上rm 是要命的命令。 。 。
建議看一下safe rm,保護起來重要的文件。 。

巴扎黑

方法1:
當進程打開了某個檔案時,只要該進程保持打開該檔案,即使將其刪除,它依然存在於磁碟中.
這意味著,進程並不知道檔案已經被刪除,它仍然可以向打開該檔案時提供給它的檔案描述符進行讀取和寫入.
除了該進程之外,這個檔案是不可見的,因為已經刪除了其對應的目錄索引節點.

查看已刪除但仍開啟的檔案:
sudo lsof|grep deleted 例如返回:

COMMAND     PID     USER   FD      TYPE     DEVICE SIZE/OFF       NODE NAME
apache2    3000 www-data    2w      REG      251,0    15284     287237 /var/log/apache2/error.log.1 (deleted)
apache2    3000 www-data    7w      REG      251,0   576513     287219 /var/log/apache2/access.log.1 (deleted)

其中3000是進程PID,其中2w中的2就是已經被刪除的檔案的error.log.1的檔案描述符(FD).
例如執行下面命令可見:

ls -l /proc/3000/fd/2
l-wx------ 1 root root 64 2016-03-21 08:30 /proc/3000/fd/2 -> /var/log/apache2/error.log.1 (deleted)

這個檔案可以嘗試使用檔案描述子(fd)還原:

sudo cp -L /proc/3000/fd/2 ./error.log.1
sudo cp -L /proc/3000/fd/7 ./access.log.1

方法2:
使用rm需要格外小心.
在不小心刪除後,最好及時卸載分區,避免資料覆蓋寫入.
如果必須掛載,可以使用唯讀模式.

extundelete可用於還原ext3或ext4分割區上rm刪除的檔案.
http://extundelete.sourceforge.net/
http://www.gnutoolbox.com/extundelete/

基于文件恢复:
extundelete /dev/sdb1 --restore-files /etc/passwd
基于目录恢复:
extundelete /dev/sdb1 --restore-directory /var/lib/mysql
基于磁盘恢复:
extundelete /dev/sdb1 --restore-all
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!