Automatisches Verschieben von Dateien älter 2 Jahre auf externe Festplatte

Janke

Registriert
Thread Starter
Mitglied seit
28.12.2009
Beiträge
4
Hallo Community,

ich bin auf der Suche nach einer Funktion, mit der ich Dateien aus dem Ordner "Dokumente", die älter als z.B. 2 Jahre sind, in eine gleiche, automatisch anzulegende Verzeichnisstruktur auf ein externes Laufwerk verschieben kann.

Dabei sollen im Ziellaufwerk bereits vorhandene Dateien mit gleichem Namen im gleichem Verzeichnis idealerweise nicht überschrieben werden, sondern einfach als zweite Kopie dort abgelegt werden (das wäre aber nur eine feine Option, ein Überschreiben im Zielverzeichnis wäre auch ok).


Ich bin totaler Laie in Sachen Scripting und habe zunächst erwartet, dass der Automator diese Aufgabe doch mit Leichtigkeit erledigen müsste, bin dort aber nicht fündig geworden. Dann habe ich mich etwas mit rsync und mv auseinandergesetzt, bin dort aber irgendwann bei den vielen Optionen ausgestiegen. Im Forum habe ich leider auch nichts gefunden. Ich hatte vermutet, dass diese Funktion mit Bordmitteln (macOS Mojave) bestimmt irgendwo existiert oder gebastelt werden kann, weil doch eigentlich viele User das gleiche Problem haben dürften?! Oder hilft da nur eine externe Anwendung?


Ich freue mich über jeden Tipp, der mir bei der Lösung meines Problems weiterhilft...

Danke und Grüße aus dem mittleren Norden :)
 

Maulwurfn

Mitglied
Mitglied seit
06.06.2004
Beiträge
26.818
Das wird niemals so zuverlässig funktionieren, dass ich mich darauf verlassen würde.
 

Janke

Registriert
Thread Starter
Mitglied seit
28.12.2009
Beiträge
4
Hallo Maulwurfn, (btw.: Autschn, cooler Name :) )

hätte nicht erwartet, das das so eine schwierige Aufgabe ist...? Es wäre auch ausreichend, wenn ich das Skript einmal im Jahr über meinen Dokumentenordner drüberjage... Es ist doch "nur" ein Verschieben in eine gespiegelt Ordnerstruktur...
 

Schiffversenker

Mitglied
Mitglied seit
25.06.2012
Beiträge
10.920
Mir wäre das auch zu riskant, da selbst etwas zusammenzubauen.
Etwa, weil die Ordnerstuktur ja bei den meisten Menschen nicht in Granit gemeisselt ist und das bei Änderungen daran dann auf dem Archivlaufwerk zu ziemlichem Kuddelmuddel führen könnte.
Ist auch nicht einfach, da alle Entwicklungen vorherzusehen und auf mögliche Fehler zu prüfen.

Rein vom Programmieren her könnte ich mir vorstellen, für jedes Jahr jeweils so eine Sicherung durchzuführen - einfach alles in den betreffenden Ordnern spiegeln und dann über eine intelligente Suche alle neueren Dateien rauslöschen.
Die Dateien wären dann archiviert in der vorhandenen Verzeichnisstruktur, aber halt getrennt nach Jahren (oder anderen Abständen, du hattest halt eine Aktion pro Jahr erwähnt).

Generell wäre auch zu überlegen, was du mit "älter" meinst. Erstellungsdatum, letzte Änderung oder letzte Benutzung. Ist halt auch abhängig von deinen Dateien und deinen Interessen.
Man kann da sicher ein Konzept entwickeln mit Ausnahmen, das wäre mir aber zu kompliziert.
Und was machst du mit Projekten/Verzeichnissen, die du häufig benutzt, wo aber ein, zwei Dateien liegen, die dazugehören, aber mal längere Zeit nicht geöffnet wurden? Das Verzeichnis dann einfach auseinanderreissen?

Ich gebe aber zu, daß mir das ganze Konzept nicht so recht zusagt, für mich persönlich wäre es irgendwie unsinnig, das Auslagern oder Archivieren von Dateien vom Erstellungs- oder Änderungszeitpunkt abhängig zu machen. So wie ich auch meine Zweifel an diesem Konzept habe, alles wegzugeben, was ich ein Jahr nicht gebraucht habe. Ich hänge halt an meinen Sparbüchern. Und auch an meinen Skiern, selbst wenn ich ein Jahr mal nicht in den Urlaub fahren konnte. Oder früher an den Reservereifen.

Ist aber wie gesagt, sehr vom persönlichen Verhalten abhängig, ich will dir das nicht ausreden.
Vielleicht lohnt es, sich mal CarbonCoyCloner anzuschauen, ob das Programm intelligente Suchordner (x-Datum älter als …) als Quelle benutzen kann und dabei die Verzeichnisstruktur beibehält.
 

Janke

Registriert
Thread Starter
Mitglied seit
28.12.2009
Beiträge
4
Hallo Schiffversenker,

Danke für deine Antwort :) Ich kann deine Bedenken durchaus nachvollziehen, für meinen Anwendungsfall wäre es aber ok. Ich habe viele alte Dateien, die ich nicht wegschmeißen möchte / kann, die aber auch nicht meine Systemfestplatte belasten sollen. Ich denke, da ist dann der von dir beschriebene Weg der sinnvollste, also Backup erstellen, neue Dateien auslöschen und in aktueller Verzeichnisstruktur auf dem Systemlaufwerk die alten Dateien löschen...

Ich danke euch für eure Anregungen!!!
 

Atalantia

Mitglied
Mitglied seit
26.11.2009
Beiträge
1.447
Das geht mit Applescript. Gefahr die hier einige wittern gibt’s keine. (wenn das Script richtig geschrieben ist) Ist halt etwas Arbeit, vielleicht findest Du ja jemanden der seine Zeit gratis opfert.
 

fischerttd

unregistriert
Mitglied seit
07.11.2019
Beiträge
294
Eigentlich geht es auch ohne Script. Man benötigt nur eine Ordnerstruktur die mit der Jahreszahl beginnt

Fotos -->2020
Dokumente --> 2020
etc.pp

So hat man immer einen Überblick, welche Daten älter als 2 Jahre sind und kann per Hand oder einem einfachen rsync-Script (den man auf die Jahreszahl) anpasst, seine Daten kopieren und dann löschen.

Diese Ordner kann man dann bequem jedes Jahr auf einem anderen Medium/Cloud auslagern.
 

xentric

Mitglied
Mitglied seit
11.05.2007
Beiträge
4.146
Das ist überhaupt gar keine Aufgabe für Applescript. Atalantia kommt nur bei jedem Beitrag in diesem Forum immer mit Applescript daher.

Man sollte sowas natürlich im Hintergrund laufen lassen über z.B. launchd/cron zeit oder event gesteuert. Die passenden Dateien kann man per find anhand der creation time filtern, dann per rsync oder Ähnliches kopieren. Das sollte nicht viel mehr ein paar Zeilen Script sein + den launchd/cron/daemon Eintrag.
 

bowman

Mitglied
Mitglied seit
08.10.2003
Beiträge
2.650
...bei solchen Beiträgen:
Das wird niemals so zuverlässig funktionieren, dass ich mich darauf verlassen würde.
Mir wäre das auch zu riskant, da selbst etwas zusammenzubauen.
...frage ich mich schon, ob mich dieses Forum noch interessieren sollte - ein derartiges Mindset ist mir zutiefst zuwider... (n)

Natürlich kann man das skripten:

Schritt 1: Mit rsync ein versioniertes Backup auf die externe Platte machen:
https://wiki.ubuntuusers.de/Skripte/Backup_mit_RSYNC/

Das rsync-Skript arbeitet mit Hardlinks, d.h. du hast einen "Datumsordner" von jedem Backup, der scheinbar den gesamten Inhalt des Quellverzeichnisses enthält. Faktisch gibt es jedoch keine Dateiduplikate, alle sich wiederholenden Dateien und Verzeichnisse sind Hardlinks. Dateien würden erst dann auf dem Backup gelöscht, wenn wenn der letzte Hardlink in einem der Datumsordner gelöscht würde. Ich nutze dieses Skript schon sehr lange und sichere damit komplette Server...

Schritt 2: Alle Dateien im Quellordner löschen, die älter als zwei Jahre sind:

https://unix.stackexchange.com/questions/194863/delete-files-older-than-x-days

...simple as that...
 
Zuletzt bearbeitet:

Bozol

Mitglied
Mitglied seit
16.07.2003
Beiträge
2.428
Wäre das nicht was für Hazel?

Ich verschiebe auch Dateien welche innerhalb einer gewissen Zeit nicht angefasst wurden woanders hin.
Bildschirmfoto 2020-06-03 um 19.13.03.jpg
Und Hazel kann ja auf der Destination die Verzeichnisstruktur übernehmen.

Bildschirmfoto 2020-06-03 um 19.28.45.jpg Bildschirmfoto 2020-06-03 um 19.10.50.jpg
 

Janke

Registriert
Thread Starter
Mitglied seit
28.12.2009
Beiträge
4
Vielen Dank euch allen für die Anregungen. Die Idee von fischerttd finde ich auch ganz cool und einfach für mich als Laien umzusetzen. Zwar hätte ich dann nicht meine Ordnerstruktur auf der Archivfestplatte, aber immerhin nach Jahren sortiert... Bowman, deine Idee verfolge ich auch mal... Das Löschen der Dateien könnte doch auch mit dem Automator funktionieren...

Wie gesagt, Danke euch allen für die Ideen!!!
 

lisanet

Mitglied
Mitglied seit
05.12.2006
Beiträge
2.349
Ich habe viele alte Dateien, die ich nicht wegschmeißen möchte / kann, die aber auch nicht meine Systemfestplatte belasten sollen. Ich denke, da ist dann der von dir beschriebene Weg der sinnvollste, also Backup erstellen, neue Dateien auslöschen und in aktueller Verzeichnisstruktur auf dem Systemlaufwerk die alten Dateien löschen...
Deine Vorgehensweise birgt eine Gefahr in sich.

Nachdem du deine "alten Dateien" vom Systemlaufwerk gelöscht hast, sind diejenige auf der externen Platee deine Originale.

Dein Glaube, dass du die ja noch zusätzlich in einem Backup hast, kann aber durchaus nicht stimmen. Nur wenn du sicherstellen kannst, dass die jeweiligen Backupstände _immer_ aufgehoben werden und _nicht_ gelöscht werden, hast du die alten Daten noch im Backup. Aber ganz das mit "alle Backupstände sind vorhanden" muss so nicht sein.

TimeMachine z.B. löscht regelmäßig Backupstände der einzelnen Stunden-Sicherungen so dass nur eine Tages-Sicherung übrig bleibt und diese Tages-Sicherungen werden ebenso reduziert auf eine Sicherung pro Woche.

So wie du schreibst, klingt das für mich so, als ob du ein Backup nur danun machst, wenn du ausmisten willst. Somit hätte TimeMachine nur 1 Stand mit den alten Dateien. Und dieser Stand könnte dann durchaus im Laufe der Zeit verschwinden.