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:
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:
|
<<: Tab-Effekte mit JS schreiben
>>: Lernen Sie, wie Sie in 6 Sekunden 1 Million Datensätze in MySQL einfügen
Verwenden Sie Javascript, um ein Message Board-Be...
Anwendungsszenario In vielen Fällen installieren ...
Situationsbeschreibung: Die Datenbank wurde abnor...
Hash-Join Für die Ausführung von Hash Join sind k...
Dieser Artikel beschreibt anhand eines Beispiels ...
Inhaltsverzeichnis 1 Begriffliche Abgrenzung 2 Fa...
1. Entpacken Sie das Zip-Paket in das Installatio...
Code: <input Typ="text" Klasse="...
Benutzer virtueller Maschinen richten normalerwei...
Im Bereich Design gibt es jedes Jahr unterschiedl...
Mit CSS3 können Animationen erstellt werden, die ...
<br />Ich habe festgestellt, dass viele Leut...
Inhaltsverzeichnis Erste Schritte mit MySQL MySQL...
Da ich selbst eine Webseite schreiben möchte, lern...
Auch bei der tatsächlichen Entwicklung von Websei...