Wie verhindere ich, dass ich versehentlich Dateien lösche/ändere?

Wie verhindere ich, dass ich versehentlich Dateien lösche/ändere?

Ich verwende Ubuntu 10.04. Ich habe ein großes Verzeichnis mit (vielen Unterverzeichnissen) und Datendateien, die ich häufig in meinen Skripten verwende. Ich möchte sicherstellen, dass ich niemals versehentlich Dateien/Verzeichnisse in diesem Superverzeichnis lösche/überschreibe/ändere.

Wie kann ich das machen?

Antwort1

Meist sortiert nach abnehmendem Schutz und zunehmendem Komfort:

  • Speichern Sie die Dateien auf physisch schreibgeschützten Medien wie beispielsweise einer CD-ROM.

  • Speichern Sie die Dateien auf einem separaten Dateisystem, das Sie schreibgeschützt mounten.

  • Wenn Sie der Administrator sind, erstellen Sie einen weiteren Benutzer und machen Sie diese Dateien zum Eigentümer dieses anderen Benutzers.

  • Verwenden Sie FUSEbindfs(Ubuntu-Paket bindfs), um eine schreibgeschützte Ansicht des Verzeichnisbaums zu erstellen und Ihre Skripte auf diese schreibgeschützte Ansicht zu richten:

    bindfs -p a-w /path/to/actual/tree /path/to/readonly/view
    myscript -d /path/to/readonly/view
    
  • Machen Sie den Verzeichnisbaum mit schreibgeschützt chmod a-w /path/to/tree.

  • Erstellen Sie eine Kopie des Baums mit fest verknüpften Dateien und richten Sie Ihr Skript auf die Kopie aus. Dann können Ihre Skripts zwar immer noch vorhandene Dateien ändern, aber wenn sie Dateien erstellen, entfernen oder ersetzen, wirkt sich dies nur auf die Kopie aus.

    cp -al /path/to/actual/tree /path/to/readonly/view
    myscript -d /path/to/readonly/view
    

Ich empfehle Ihnen, Bindfs zu verwenden. Der einzige Grund, warum ich angesichts Ihrer Anforderungen etwas anderes tun würde, wäre, wenn es nicht verfügbar wäre.

Wenn Sie möchten, dass die Skripte in den Verzeichnisbaum schreiben können, ohne die eigentlichen Dateien zu beeinträchtigen, können Sie beispielsweise ein Union-Dateisystem verwenden.FunktionenoderUnionFS-Sicherung.

Antwort2

Es gibt keinen richtigen Weg, denn egal was Sie tun, am Ende können Sie sie immer löschen.

Sie können es dennoch mit Dateiberechtigungen versuchen. Klicken Sie mit der rechten Maustaste auf das Verzeichnis und stellen Sie den Ordnerzugriff auf „Auf Dateien zugreifen“ und den Dateizugriff auf „Nur Lesen“ ein. Klicken Sie anschließend auf „Berechtigungen auf eingeschlossene Dateien anwenden“. Auf diese Weise müssen Sie diese Einstellung manuell aufheben, wenn Sie Dateien in diesem Verzeichnis löschen möchten.

Antwort3

Sie könnten rsyncdas Verzeichnis in ein anderes verschieben und --link-destzum Erstellen von Hardlinks verwenden, damit diese keinen zusätzlichen Speicherplatz beanspruchen.

Ein guter Artikel istTime Machine für jedes Unix da draußen.

Antwort4

Irren ist menschlich. Ich habe einmal eine wichtige Datei gelöscht, weil ich gerade aufgewacht war und noch müde (kein Kater) :) Glücklicherweise geschah dies erst, nachdem ich einige Tricks gelernt hatte, die dabei helfen, die negativen Auswirkungen solcher dummen Aktionen abzumildern. Hier sind sie:

  • Machen Sie immer Backups und stellen Sie regelmäßig sicher, dass die Backups tatsächlich das enthalten, was sie enthalten sollen, um die Situation zu vermeiden, dass Sie eine Datei verlieren, versuchen, sie aus einem Backup wiederherzustellen und feststellen, dass sie aus irgendeinem Grund nicht im Backup enthalten ist
  • Verwenden Sie die Versionskontrolle
  • Verwenden Sie ein Abrechnungssystem wie inotify. Es hilft Ihnen dabei, Änderungen am Dateisystem zurückzuverfolgen.

Seit diesem Vorfall habe ich mir eine weitere eisernen Regel zu eigen gemacht: „Berühren Sie den Computer nie, wenn Sie noch müde sind.“

verwandte Informationen