Wie kann ich tar / gzip und dann Verzeichnisse etwas sicher löschen?

1877
Andrew Grimm

Wie soll ich tar / gzip und Dateien etwas sicher löschen?

Hintergrund : Auf einem Ubuntu-Computer (Hardy Heron) ist nur wenig Speicherplatz verfügbar. Ich möchte tar / gzip, überprüfen, ob es funktioniert hat, und dann einige Verzeichnisse löschen, die ich nicht mehr verwende. Ich plane, für jedes Verzeichnis, in dem ich los bin, einen tar-gzip zu erstellen. (Die GZIPS werden auf der Festplatte sein, nicht ein Magnetband)

Ich bin auf eine Lösung gestoßen, die sicher sein sollte, aber nicht auf unix.com . Dies ist nicht sicher, da --remove-files in aktuellen tar-Versionen Dateien löschen kann, auch wenn das Archiv nicht erstellt wird. (Anerkannt als Fehler in dieser E-Mail )

Ich habe auch die Option --compare bemerkt, die besagt, dass "Dateien im Dateisystem ignoriert werden, die keine entsprechenden Mitglieder im Archiv haben".

Beeinträchtigt gzipping auch die Fähigkeit von tar, die vorhandenen Dateien zu überprüfen?

3

2 Antworten auf die Frage

3
DaveParillo

Sie können Rsync für die --delete-afterÜbertragung konfigurieren . Es enthält auch viele andere Optionen - dh Sie können den Schritt tar / gzip ganz vermeiden. Verwenden Sie rsync, um Ihre Daten zu sichern und die lokale Kopie zu löschen. Für detaillierte Anweisungen siehe scrounge.org und mikerubel.org und diese .

Ich verwende nicht mehrere Computer. Andrew Grimm vor 14 Jahren 0
rsync benötigt keine zwei Computer. Sie können die Quelle und das Ziel beliebig definieren. Ein lokaler Rsync ist absolut legal. DaveParillo vor 14 Jahren 0
1
Jonathan Leffler

Ich benutze dieses Skript für meinen eigenen Gebrauch:

#!/bin/ksh # # @(#)$Id: save.sh,v 2.2 2007/09/01 23:41:23 jleffler Exp $" # # Compress directories to save space  case $(id | sed 's/^uid=\([0-9][0-9]*\)(.*/\1/') in 0) echo "$(basename $0 .sh): cannot run safely as root!" 1>&2 exit 1;; esac  for d in ${*:-`pwd`} do ( set -e echo $d cd $d b=`basename $d` chmod 755 . [ ! -d Safe ] && mkdir Safe chmod 755 Safe # GNU Tar Only! find . -type f -print | grep -v '^./Safe' | tar -czf Safe/$b.tgz -T - chmod 444 Safe/$b.tgz chmod 555 Safe (set +e; rm -fr `pwd` 2>/dev/null ; exit 0) chmod 755 Safe mv Safe/* . rmdir Safe chmod 555 . ) done 

Beachten Sie, dass 'root' Verzeichnisse löschen kann, selbst wenn der Eigentümer dies nicht kann. Daher lässt er sich von 'root' nicht ausführen. Probieren Sie es in einer Kopie Ihres Verzeichnisses aus, bevor Sie es für alles Wichtige riskieren. Ich bin glücklich damit - vielleicht bevorzugen Sie etwas anderes.

Eines Tages werde ich es mit 'bzip2' oder anderen Kompressoren funktionieren lassen.