Ich habe einen seltsamen Hardlink auf einem CentOS 6.5 VPS-Server. Ich gehe davon aus, dass er von Menschenhand erstellt wurde, aber ich bin nicht derjenige, der ihn erstellt hat.
df
gibt einige Informationen.
[root@root]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/simfs 209715200 128660820 81054380 62% /
none 4194304 4 4194300 1% /dev
none 4194304 0 4194304 0% /dev/shm
/dev/simfs 209715200 128660820 81054380 62% /var/www/username/data/www/test.site.biz/photo
ls -li
sagt nichts brauchbares
[root@vz65646 test.site.biz]# ls -li
total 7952
79435160 drwxr-xr-x 2 someuser someuser 8130560 Oct 25 20:52 photo
Der fest verknüpfte Ordner ist photo
. Durch ein Versehen rm -rf test.site.biz
ist etwas Schlimmes passiert. Das Fotoverzeichnis an anderer Stelle wurde nämlich gelöscht.
Ich gehe davon aus, dass eine Wiederherstellung der Daten nicht möglich ist. Dennoch möchte ich herausfinden, was hier passiert ist, damit ich denselben Fehler nicht zweimal wiederhole.
Alle Hinweise sind herzlich willkommen.
Antwort1
Sie haben zwei gemountete Dateisysteme mit ähnlichen Eigenschaften: gleicher Gerätename, gleiche Festplattennutzung. Es ist sehr wahrscheinlich, dass es sich tatsächlich um dasselbe Gerät handelt. Dies kann beispielsweise passieren, wenn Sie dasselbe Netzwerkdateisystem an verschiedenen Orten mounten. Da es sich um ein lokales Dateisystem handelt,QuelleJediin einem Kommentar identifiziert, ist dies sehr wahrscheinlich einBind-Mount, erstellt durch einen Befehl wie mount --bind /origin /var/www/username/data/www/test.site.biz/photo
.
Wenn Ihr System aktuell genug ist, können Sieverwenden findmnt
, um zu bestätigen, dass es sich um eine Bind-Halterung handelt. Die meisten Dateisystemtypen können jedoch nicht gleichzeitig an verschiedenen Orten gemountet werden. Das Vorhandensein desselben Geräts reicht also als Beweis dafür, dass es sich um eine Bind-Mount-Verbindung handelt.
Ein Bind-Mount bietet die Ansicht eines Verzeichnisbaums an einem anderen Ort. In Bezug auf den Zugriff auf die Dateien unter dem Bind-Mount ist es ähnlich wie ein symbolischer Link im Baum, d. h. es handelt sich um /var/www/username/data/www/test.site.biz/photo/somefile
dieselbe Datei wie /origin/somefile
, als ob /var/www/username/data/www/test.site.biz/photo
es ein symbolischer Link zu wäre /origin
. /var/www/username/data/www/test.site.biz/photo
Es ist jedoch kein symbolischer Link, sondern ein Verzeichnis.
Da /var/www/username/data/www/test.site.biz/photo
es sich um ein Verzeichnis handelt, wird bei einer rekursiven Durchquerung dorthin gewechselt. Daher rm -rf
werden die Dateien unter gelöscht /original
, da /original
und /var/www/username/data/www/test.site.biz/photo
dasselbe Verzeichnis sind, das nur zufällig an unterschiedlichen Orten angezeigt wird.
Antwort2
Ein paar Dinge, die mir zu diesem Thema eingefallen sind:
mount --bind
ist keine gute Idee, bis Sie genau wissen, was Sie tun. Verwenden Sie besser symbolische Links.- Beim Arbeiten mit Ordnern ist es ziemlich schwierig, Mounts zu erkennen. Es ist sozusagen ein Serverbereich (nicht das, was Sie beim Verschieben von Ordnern denken).
umount your_directory
entfernt die Bindung, beschädigt den Originalordner jedoch nicht.- Sie können alle Mounts per
findmnt
Befehl auflisten. Gebundene Mounts werden in eckigen Klammern angezeigt.