Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Alte Dateien und Verzeichnisse ins Archiv verschieben

  1. #1
    Registrierter Benutzer
    Registriert seit
    Dec 2016
    Beiträge
    2

    Alte Dateien und Verzeichnisse ins Archiv verschieben

    Hallo Forumbewohner!

    Ich hätte ein Anliegen, bei dem ich eure Hilfe bräuchte.

    Ich habe hier auf meinem Linxserver (Debian) ein ca 3TB großes Archiv und möchte da ein bisschen ausmisten.

    Ich bräuchte ein Script, welches überprüft, ob eine Datei schon x Tage (2 Jahre) nicht mehr geändert wurde, wenn ja, soll sie auf meine andere Platte verschoben werden. (Wird anschließend Archiviert).

    An sich kein großes Problem. find ist da ja ganz gut drin. Problem ist, dass ich das ganze auch mit den Verzeichnissen bräuchte. Also möchte ich nicht einen Ordner mit 10000 Files, sondern diese sollen auch wieder auf der neuen Platte im entsprechenden Verzeichnis sein.

    Habe ein bischen mit Shell-Scripten rumprobiert, komme da aber leider auf keinen grünen Zweig.

    Ich danke euch für eure Hilfe!

    LG. AltBen

  2. #2
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.061
    auf den ersten Blick:
    Suchen der Dateien mit find, Schleife drumherum, der Datei Pfad auf Ziel-Platte erstellen, Datei verschieben.

    Wie sieht denn Dein Ansatz aus, wo hapert es?
    Ich bin root - ich darf das.

  3. #3
    Universaldilletant Avatar von fork
    Registriert seit
    Dec 2001
    Ort
    Frankfurt/Main
    Beiträge
    1.175
    Ungefähr so:

    Code:
    LAST_CHANGE_DAYS=730
    cd /aktuelles/verzeichnis
    find . -mtime +$LAST_CHANGE_DAYS                                  \
          | tee dateiliste.txt                                        \
           | tar -cf - -T -                                           \
            | tar -xvf - -C /archiv_verzeichnis
    Das obige mal als Test. Es wird nur kopiert und nicht gelöscht. Wenn das dann so passt, hast Du in dateiliste.txt eine eine Liste von Dateien, die kopiert wurde und die Du dann in einem weiteren Schritt löschen kannst.
    Geändert von fork (07.12.16 um 14:38 Uhr)

  4. #4
    Registrierter Benutzer
    Registriert seit
    Nov 2016
    Beiträge
    81
    Lese ich richtig 3TB großes Archiv ... du meinst eine Datei ?

    An deiner Stelle würde ich inkrementelle Backups machen und nicht alles in ein File archivieren.
    Wenn die Datei oder die Festplatte irgendwo einen Fehler hat dann sind warscheinlich 3TB an Daten weg.

    Anhand von inkremental Backups kann man auch schneller feststellen welche Dateien wie alt sind.


    Ich habe nicht so den Plan welche Möglichkeiten es gibt, aber ich würde alles entpacken und dann auch mit find arbeiten.
    Diese 3TB versuchen kleiner zu bekommen und danach wieder archivieren in mehrere Archive.
    Ich vermute mal es könnten die Befehle -t und --index-file helfen um erstmal sich ein System auszudenken wie man diese Datenmenge beweltigen will.
    Aber keine Garantie das mein Weg der richtige ist !

  5. #5
    Registrierter Benutzer
    Registriert seit
    Dec 2016
    Beiträge
    2
    @suleiman Zum Verständniss: Ich habe keine 3TB große Archivdatei. Wir sprechen einfach so über das "Archiv". Einfach ein großer Hauptordner mit vielen Unterordnern, in denen sich dann wiederum Dateien und Unterordner befinden.

    @fork Ja sowas in der Art, nur dass bei mir da dann folgendes kommt:

    Code:
    tar: Options '-f' and '-T' both want standard input
    „tar --help“ oder „tar --usage“ gibt weitere Informationen.
    Danke für die Hilfe!

  6. #6
    Universaldilletant Avatar von fork
    Registriert seit
    Dec 2001
    Ort
    Frankfurt/Main
    Beiträge
    1.175
    tar: Options '-f' and '-T' both want standard input
    Ähem. Ja. Wo tar recht hat hat es recht. Es muss natürlich heissen

    Code:
    tar -xvf - -C /archiv_verzeichnis
    Habe es oben korrigiert.

  7. #7
    Registrierter Benutzer
    Registriert seit
    Nov 2016
    Beiträge
    81
    Hast du das original Datum beibehalten beim erstellen der Backups?
    Weil sonst sind die Dateien alle so alt wie das Archive wo du erstellt hast.

    --atime-preserve
    Zugriffszeiten für ausgegebene Dateien erhalten, entweder durch Wiederherstellen der Zeiten nach dem Lesen (METHOD='replace'; Vorgabe) oder durch Nicht-Setzen der Zeiten am ersten Ort (METHOD='system')

    Des weiteren kenn ich keine Möglichkeit um das Datum aus Daten in Archiven auszulesen, ohne was endpacken zu müssen.

    Hier mal der Code um ganze Verzeichnisse zu entpacken...
    Code:
    cd /Pfad/Zum/Backup
    for ARCHIV in *.tgz ; do	# Alle Archive im Verzeichnis ermitteln
    	tar -xpzf $ARCHIV -C /Pad/Zum/Entpacken 	# Alle Dateien entpacken
    	if [ -ne $? ]	 # Abfragen ob irgend ein Fehler aufgetrehten ist.
    	then
    		echo "Probleme mit Archive: ${ARCHIV}"
    	fi
    done
    Wenn inkrementelle Backups nutzt dann kannst --listed-incremental=/dev/null hinter dem Wort tar einfügen.
    Damit werden bei doppelten Dateien nur noch die neuen entpackt.

    Damit ist aber immer noch nicht geklärt wie du alte Dateien raus filterst.
    Geändert von suleiman (07.12.16 um 15:15 Uhr)

Ähnliche Themen

  1. fstab, Linux-System-Verzeichnisse auf andere Platte verschieben
    Von resolver im Forum System installieren und konfigurieren
    Antworten: 6
    Letzter Beitrag: 08.10.04, 11:36
  2. Nicht alles Dateien/Verzeichnisse aus tar-Archiv entpacken
    Von detonation997 im Forum Linux Allgemein
    Antworten: 2
    Letzter Beitrag: 15.04.03, 22:23
  3. In einem tgz archiv dateien verschieben
    Von mynonA im Forum Linux Allgemein
    Antworten: 1
    Letzter Beitrag: 01.02.03, 09:28
  4. Antworten: 0
    Letzter Beitrag: 03.01.03, 15:37
  5. alte Dateien verschieben
    Von mamue im Forum Linux Allgemein
    Antworten: 0
    Letzter Beitrag: 03.11.02, 09:49

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •