Linux verwendet lsof/extundelete-Tools, um versehentlich gelöschte Dateien oder Verzeichnisse wiederherzustellen

Linux verwendet lsof/extundelete-Tools, um versehentlich gelöschte Dateien oder Verzeichnisse wiederherzustellen

Vorwort

Linux verfügt nicht über einen prominenten Papierkorb wie Windows, Sie können es also nicht einfach wiederherstellen.

Es gibt zwei Situationen, in denen Dateien nach dem Löschen unter Linux wiederhergestellt werden können. Entweder sind die Löschinformationen nach dem Löschen im Prozess vorhanden, oder der Prozess kann nach dem Löschen nicht gefunden werden und kann nur mit Hilfe von Tools wiederhergestellt werden. Hier sind die Inspektionen und Einführungen

1. Die Situation, in der der Vorgang des versehentlichen Löschens einer Datei immer noch besteht.

Dies geschieht normalerweise, wenn ein aktiver Prozess mit kontinuierlicher Standardeingabe oder -ausgabe vorhanden ist. Wenn die Datei gelöscht wird, ist die Prozess-PID immer noch vorhanden. Aus diesem Grund löschen manche Server einige Dateien, ohne dass die Festplatte freigegeben wird. Zum Beispiel das aktuelle Beispiel:

Verwenden Sie ein Shell-Terminal, um cat an eine Testdatei anzuhängen:

[root@21yunwei_backup ~]# echo "hallo py" > testdelete.py
[root@21yunwei_backup ~]# cat >> testdelete.py 
hallo löschen

Das Anzeigen dieser Datei in einem anderen Terminal zeigt den Inhalt deutlich:

[root@21yunwei_backup ~]# cat testdelete.py 
hallo py
hallo löschen

Löschen Sie zu diesem Zeitpunkt die Datei rm -f ./testdelete.py auf dem aktuellen Server

Befehl zum Überprüfen dieses Verzeichnisses. Die Datei existiert nicht mehr, daher werden wir sie jetzt wiederherstellen.

1. Überprüfen Sie mit lsof, ob der gelöschte Dateiprozess noch vorhanden ist. Hier verwenden wir den Befehl lsof. Wenn dieser nicht installiert ist, installieren Sie ihn bitte mit yum oder apt-get. In einer ähnlichen Situation können wir zunächst mit lsof prüfen, ob die gelöschten Dateien noch vorhanden sind:

[root@21yunwei_backup ~]# lsof | grep gelöscht
mysqld 1512 mysql 5u REG 252,3 0 6312397 /tmp/ibzW3Lot (gelöscht)
cat 20464 root 1w REG 252,3 23 1310722 /root/testdelete.py (gelöscht)

Glücklicherweise existiert der Prozess in diesem Fall noch, Sie können also den Wiederherstellungsvorgang starten.

2. Wiederherstellung.

Wiederherstellungsbefehl:

cp /proc/pid/fd/1 /angegebenes Verzeichnis/Dateiname

Geben Sie das Prozessverzeichnis ein, normalerweise /proc/pid/fd/, für die aktuelle Situation:

[root@21yunwei_backup ~]# cd /proc/20464/fd
[root@21yunwei_backup fd]# ll
gesamt 0
lrwx------ 1 root root 64 15. Nov. 18:12 0 > /dev/pts/1
l-wx------ 1 root root 64 15. Nov. 18:12 1 > /root/testdelete.py (gelöscht)
lrwx------ 1 root root 64 15. Nov. 18:12 2 > /dev/pts/1

Wiederherstellungsvorgang:

cp 1 /tmp/testdelete.py

Sehen Sie sich die Datei an:

[root@21yunwei_backup fd]# cat /tmp/testdelete.py
hallo py
hallo löschen

Die Wiederherstellung ist abgeschlossen.

Zweitens existiert der versehentlich gelöschte Dateivorgang nicht mehr und kann mit Hilfe von Tools wiederhergestellt werden.

Erstellen Sie das zu löschende Verzeichnis und geben Sie eine Datei mit seinem Inhalt aus:

[root@21yunwei_backup 21yunwei]# Baum
.
├── Löschtest
│ └── Mail
│ └── test.py
├── verloren+gefunden
└── passwd
 
3 Verzeichnisse, 2 Dateien
[root@21yunwei_backup 21yunwei]# cat /21yunwei/deletetest/mail/test.py 
hallo dj
[root@21yunwei_backup 21yunwei]# tail -2 passwd 
haproxy:x:500:502::/home/haproxy:/bin/bash
tcpdump:x:72:72::/:/sbin/nologin

So führen Sie einen Löschvorgang aus:

[root@21yunwei_backup 21yunwei]# rm -rf ./*
[root@21yunwei_backup 21yunwei]# ll
gesamt 0

Beginnen Sie jetzt mit der Wiederherstellung versehentlich gelöschter Dateien. Diese Situation tritt normalerweise auf, wenn kein Daemon oder Hintergrundprozess kontinuierlich Daten eingibt, sodass diese gelöscht werden und lsof sie nicht sehen kann. Sie müssen Werkzeuge verwenden. Das Tool, das wir hier verwenden, ist das Drittanbietertool extundelete. Die Wiederherstellungsschritte sind wie folgt:

1. Stoppen Sie alle Vorgänge auf der aktuellen Partition, um zu verhindern, dass der Inode überschrieben wird. Wenn der Inode überschrieben wird, sind Sie grundsätzlich mit dem Durchlaufen fertig. Sie können beispielsweise den Dienst der Partition beenden, das Gerät, auf dem sich das Verzeichnis befindet, deinstallieren und bei Bedarf die Verbindung zum Netzwerk trennen.

2. Verwenden Sie den Befehl dd, um die aktuelle Partition zu sichern und so Datenverlust aufgrund von Wiederherstellungsfehlern bei Drittanbietersoftware zu verhindern. Geeignet für Situationen, in denen Daten sehr wichtig sind. In diesem Test gibt es kein Backup. Wenn ein Backup erforderlich ist, können die folgenden Methoden in Betracht gezogen werden:

dd if=/Pfad/Dateiname von=/dev/vdc1

3. Verwenden Sie den Befehl umount, um die aktuelle Gerätepartition zu deinstallieren. Oder der Fuser-Befehl.

umount /dev/vdb1 oder umount /21yunwei

Wenn das Gerät ausgelastet ist, können Sie die Deinstallation mit dem Befehl fuser erzwingen: fuser -m -v -i -k /21yunwei

4. Laden Sie das Drittanbietertool extundelete herunter und installieren Sie es, suchen Sie nach versehentlich gelöschten Dateien und stellen Sie sie wieder her.

wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
tar jxvf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4
./konfigurieren 
machen
installieren

Nach versehentlich gelöschten Dateien suchen:

[root@21yunwei_backup extundelete-0.2.4]# extundelete --inode 2 /dev/vdb1
HINWEIS: Erweiterte Attribute werden nicht wiederhergestellt.
Metadaten des Dateisystems werden geladen … 8 Gruppen geladen.
Gruppe: 0
Inhalt von Inode 2:
 
.
.N Zeilen auslassen Dateiname | Inode-Nummer | Gelöschter Status
. 2
.. 2
lost+found 11 Gelöscht
deletetest 12 Gelöscht
passwd 14 gelöscht
 

Der Scan hat den Ordner gefunden, den wir gelöscht haben, und jetzt führen wir den Wiederherstellungsvorgang durch.

(1) Wiederherstellen eines einzelnen Dateipassworts

[root@21yunwei_backup /]# extundelete /dev/vdb1 --restore-file passwd  
HINWEIS: Erweiterte Attribute werden nicht wiederhergestellt.
Metadaten des Dateisystems werden geladen … 8 Gruppen geladen.
Journaldeskriptoren werden geladen ... 46 Deskriptoren geladen.
Datei „passwd“ erfolgreich wiederhergestellt
 

Die wiederhergestellten Dateien werden im aktuellen Verzeichnis RECOVERED_FILES abgelegt.

Sehen Sie sich die wiederhergestellten Dateien an:

[root@21yunwei_backup /]# tail -5 WIEDERHERGESTELLTE_DATEIEN/passwd 
mysql:x:497:500::/home/mysql:/bin/false
nginx:x:496:501::/home/nginx:/sbin/nologin
zabbix:x:495:497:Zabbix-Überwachungssystem:/var/lib/zabbix:/sbin/nologin
haproxy:x:500:502::/home/haproxy:/bin/bash
tcpdump:x:72:72::/:/sbin/nologin

(2) Verzeichnis deletetest wiederherstellen

[root@21yunwei_backup /]# extundelete /dev/vdb1 --restore-directory deletetest 
HINWEIS: Erweiterte Attribute werden nicht wiederhergestellt.
Metadaten des Dateisystems werden geladen … 8 Gruppen geladen.
Journaldeskriptoren werden geladen ... 46 Deskriptoren geladen.
Suche nach wiederherstellbaren Inodes im Verzeichnis „deletetest“ ... 
5 wiederherstellbare Inodes gefunden.
Durchsuchen der Verzeichnisstruktur nach gelöschten Dateien ... 
[root@21yunwei_backup /]# cat RECOVERED_FILES/deletetest/mail/test.py 
hallo dj

(3) Alle wiederherstellen

[root@21yunwei_backup /]# extundelete /dev/vdb1 --restore-all
HINWEIS: Erweiterte Attribute werden nicht wiederhergestellt.
Metadaten des Dateisystems werden geladen … 8 Gruppen geladen.
Journaldeskriptoren werden geladen ... 46 Deskriptoren geladen.
Suche nach wiederherstellbaren Inodes im Verzeichnis / ... 
5 wiederherstellbare Inodes gefunden.
Durchsuchen der Verzeichnisstruktur nach gelöschten Dateien ... 
0 wiederherstellbare Inodes immer noch verloren. 
[root@21yunwei_backup /]# cd WIEDERHERGESTELLTE_DATEIEN/
[root@21yunwei_backup WIEDERHERGESTELLTE_DATEIEN]# Baum
.
├── Löschtest
│ └── Mail
│ └── test.py
└── passwd
 
2 Verzeichnisse, 2 Dateien

(4) Stellen Sie den angegebenen Inode wieder her.

[root@21yunwei_backup /]# extundelete /dev/vdb1 --restore-inode 14
HINWEIS: Erweiterte Attribute werden nicht wiederhergestellt.
Metadaten des Dateisystems werden geladen … 8 Gruppen geladen.
Journaldeskriptoren werden geladen ... 46 Deskriptoren geladen.
[root@21yunwei_backup /]# tail -5 /WIEDERHERGESTELLTE_DATEIEN/Datei.14 
mysql:x:497:500::/home/mysql:/bin/false
nginx:x:496:501::/home/nginx:/sbin/nologin
zabbix:x:495:497:Zabbix-Überwachungssystem:/var/lib/zabbix:/sbin/nologin
haproxy:x:500:502::/home/haproxy:/bin/bash
tcpdump:x:72:72::/:/sbin/nologin

Beachten Sie, dass beim Wiederherstellen des Inodes der wiederhergestellte Dateiname vom vorherigen abweicht und separat umbenannt werden muss. Der Inhalt ist in Ordnung.

Weitere Informationen zur Verwendung von extundelete finden Sie in der Beschreibung des Parameters der Option extundelete –help. Derzeit sind alle Wiederherstellungsvorgänge abgeschlossen.

Zusammenfassen

Dies ist das Ende dieses Artikels über die Verwendung des Tools lsof/extundelete in Linux zum Wiederherstellen versehentlich gelöschter Dateien oder Verzeichnisse. Weitere Informationen zum Wiederherstellen versehentlich gelöschter Dateien oder Verzeichnisse in Linux finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung des lsof-Befehls zum Wiederherstellen gelöschter Dateien unter Linux
  • Ein Beispiel für das versehentliche Löschen eines Pakets unter Linux
  • Wiederherstellungsmethode für die Verschlüsselung und Löschung beim Start von Linux Grub
  • So stellen Sie versehentlich von rm gelöschte Dateien in einer Linux-Umgebung wieder her

<<:  Tab-Effekte mit JS schreiben

>>:  Lernen Sie, wie Sie in 6 Sekunden 1 Million Datensätze in MySQL einfügen

Artikel empfehlen

Schritte zum Wiederherstellen von Code aus einem Docker-Container-Image

Manchmal geht der Code verloren und Sie müssen de...

Best Practices zum Teilen von React-Code

Wenn ein Projekt eine gewisse Komplexität erreich...

Der Unterschied zwischen Hash-Modus und Verlaufsmodus im Vue-Router

vue-router hat zwei Modi Hash-Modus Verlaufsmodus...

Vuex in einem Artikel verstehen

Inhaltsverzeichnis Überblick Die vier Hauptobjekt...

HTML+CSS zum Erzielen von Spezialeffekten durch Textfaltung – Beispiel

In diesem Artikel werden hauptsächlich Beispiele ...

Zusammenfassung einiger gängiger Konfigurationen und Techniken von Nginx

Vorwort Dieser Artikel listet mehrere gängige, pr...

Installation und Verwendung von Vue

Inhaltsverzeichnis 1. Vue-Installation Methode 1:...

jQuery realisiert den Effekt der Sitzplatzauswahl und -reservierung im Theater

jQuery realisiert den Effekt der Sitzplatzauswahl...

So erhalten Sie Datums-/Uhrzeitdaten in MySQL, gefolgt von .0

Der Datentyp von MySQL ist datetime. Die in der D...

Sind Sie immer noch Select *?

Es gibt viele Gründe, warum eine Anwendung langsa...

Detaillierte Einführung in Robots.txt

Grundlegende Einführung in robots.txt Robots.txt i...

IIS 7.5 verwendet das URL-Rewrite-Modul, um eine Webseitenumleitung zu erreichen

Wir alle wissen, dass Apache in der Konfiguration...