DS218, Automatisches Löschen nach X Tagen

00schneider1

Benutzer
Mitglied seit
06. Mrz 2023
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Hallo ihr,

ich habe folgendes Problem:

Windows 10 Pro Rechner zur Aufzeichnung von Videodaten.
Diese werden mittels Robocopy auf die NAS DS218 übertragen mittels Laufwerkfreigabe.

Problem:
Die Daten werden solange geschrieben bis der Speicher voll ist.

Wunsch:
Die gesicherten Videodaten auf dem DS218 sollen nach z. B. 8 Tagen automatisch gelöscht werden.

Kann mir da einer helfen ob und wie das geht?

Danke
 

00schneider1

Benutzer
Mitglied seit
06. Mrz 2023
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Hallo und Danke an Dich luddi.

Ich bin aber leider ein absoluter Noob was NAS angeht.
Das bedeutet, dass ich nicht mal weiss wo ich die Scripte eingeben soll.
Hast Du oder ein andere eine Schritt für Schritt Anleitung?

Wäre ein Träumchen.

Danke
 

RichardB

Benutzer
Sehr erfahren
Mitglied seit
11. Jun 2019
Beiträge
3.574
Punkte für Reaktionen
883
Punkte
174
Hier:
Aufgabenplaner.JPG
 

00schneider1

Benutzer
Mitglied seit
06. Mrz 2023
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Ich noch mal:

Habe viel gelesen aber ich bekomme es nicht hin.

zb:
find /volumen1/daten/video/ -type d -ctime +8 -exec rm -rf {} \;

Ich möchte, dass das Script in einem Verzeichnis, alle Unterverzeichnisse mit den darin enthaltenen Daten löscht, die älter als 8 Tage sind.

also .../daten/video(datum/Kamera 1 usw bis Kamera 6

Könnte einer der es weiß mir den Befehl hier schreiben?

DANKE
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
find /volumen1/daten/video/ -type d -ctime +8 -exec rm -rf {} \;
Ich denke, das sollte /volume1 heißen.

Was genau möchtest du erreichen? Vielleicht kannst du das noch näher im Detail erklären.

Du suchst in dem Verzeichnis /volume1/daten/video/ nach Unterverzeichnissen.

Nehmen wir an du hast diese Dateistruktur:
Code:
.
└── daten
    └── video
        ├── datum_A
        │   ├── Kamera 1
        │   ├── Kamera 2
        │   ├── Kamera 3
        │   ├── Kamera 4
        │   ├── Kamera 5
        │   └── Kamera 6
        ├── datum_B
        │   ├── Kamera 1
        │   ├── Kamera 2
        │   ├── Kamera 3
        │   ├── Kamera 4
        │   ├── Kamera 5
        │   └── Kamera 6
        └── datum_C
            ├── Kamera 1
            ├── Kamera 2
            ├── Kamera 3
            ├── Kamera 4
            ├── Kamera 5
            └── Kamera 6

Möchtest du nur nach den Verzeichnissen datum_A, datum_B, datum_C suchen und prüfen, ob diese älter sind als 8 Tage oder auch dessen Unterverzeichnisse?

Denn mit dem Befehl werden alle Verzeichnisse gefunden:
Bash:
$ find ./daten/video/ -type d
./daten/video/
./daten/video/datum_A
./daten/video/datum_A/Kamera 1
./daten/video/datum_A/Kamera 2
./daten/video/datum_A/Kamera 3
./daten/video/datum_A/Kamera 4
./daten/video/datum_A/Kamera 5
./daten/video/datum_A/Kamera 6
./daten/video/datum_B
./daten/video/datum_B/Kamera 1
./daten/video/datum_B/Kamera 2
./daten/video/datum_B/Kamera 3
./daten/video/datum_B/Kamera 4
./daten/video/datum_B/Kamera 5
./daten/video/datum_B/Kamera 6
./daten/video/datum_C
./daten/video/datum_C/Kamera 1
./daten/video/datum_C/Kamera 2
./daten/video/datum_C/Kamera 3
./daten/video/datum_C/Kamera 4
./daten/video/datum_C/Kamera 5
./daten/video/datum_C/Kamera 6

Wohingegen wenn man sich auf die erste Ebene Beschränkt der Befehl so auszusehen hat:
Bash:
$ find ./daten/video/ -maxdepth 1 -type d
./daten/video/
./daten/video/datum_A
./daten/video/datum_B
./daten/video/datum_C

Wenn mir klar ist, was genau du vorhast, kann ich versuchen zu unterstützen.
 
  • Like
Reaktionen: Benares

klaus99

Benutzer
Mitglied seit
01. Dez 2022
Beiträge
40
Punkte für Reaktionen
27
Punkte
68
Wenn du die Files mittels Robocopy auf eine Laufwerksfreigabe schiebst, dann geht das auch mit dem Löschen über die Laufwerksfreigabe.
Ich nutze für so etwas das Tool Z-Cron.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.803
Punkte für Reaktionen
3.761
Punkte
468
Darum geht es doch nicht. Der TE möchte einfach im Zweig /volume1/daten/video alles Verzeichnisse löschen, die älter als x Tage sind - egal wo die Daten herkommen. Lies doch mal oben.
Ich denke, da müsste sein bisheriger Ansatz soweit passen.

Ich persönlich würde erstmal mit den Optionen von "find" spielen und es erstmal mit
Code:
find /volume1/daten/video/ -type d -ctime +8
spielen und mir die Treffer-Verzeichnisse auflisten lassen, bevor ich ein
Code:
-exec rm -rf {} \;
dahinter hänge.

Aber @luddi macht das schon (y)
 
Zuletzt bearbeitet:
  • Like
Reaktionen: luddi

klaus99

Benutzer
Mitglied seit
01. Dez 2022
Beiträge
40
Punkte für Reaktionen
27
Punkte
68
Lies doch mal oben.
Habe ich doch gelesen. Doch warum umständlich mit Skripten hantieren, wenn es viel unkomplizierter geht. Im Zuge dessen, kann Z-Cron auch gleich den Part von Robocopy mit übernehmen.
Ich mache bei mir was ähnliches, aber mit Snapshots meiner Überwachungskameras. Alle 2 Tage wird das Verzeichnis aufgeräumt und alte Aufnahmen werden gelöscht.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.803
Punkte für Reaktionen
3.761
Punkte
468
Du gehst davon aus, dass die Daten auf einem bestimmten Weg aufs NAS kommen (robocopy etc.), der auch gleich die Löschung nicht mehr existenter Daten an der Quelle übernimmt. Das muss aber nicht so sein.
Jetzt geh einfach mal von einem beliebigen, existierenden Verzeichnis auf der DS aus, wo man einfach alle Unterverzeichnisse löschen möchte, die älter als x Tage/Wochen/Monate/Jahre sind.
 

00schneider1

Benutzer
Mitglied seit
06. Mrz 2023
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Danke erst mal für die Antworten.
Ja, ich nutze Robo, aber das hat einer für mich eingerichtet, der mir nun nicht mehr helfen kann.
Deswegen würde ich nicht noch ein "Fremd-Proggi" nutzen wollen.

@luddi
Du hast es gut getroffen. Deine Annahme mit der Ordnerstruktur ist richtig.

Ich möchte alle Ordner und Datein in dem Verzeichnis /volume1/daten/video/ alles löschen was älter als, in meinem Fall, 8 Tage ist.

Welches Skript muss ich in dem Aufgabenplaner in das Fenster "Benutzerdefiniertes Skript" eintragen?
Mache ich das als Benutzer Admin oder Root?

@Benares
Ich möchte sie ja gar nicht angezeigt bekommen, dass soll der Aufgabenplaner automatisch machen.
Probiere das gerade in einem Testverzeichnis aus.


Danke für Deine/eure Mühe

00
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.803
Punkte für Reaktionen
3.761
Punkte
468
Ja, ich nutze Robo, aber das hat einer für mich eingerichtet, der mir nun nicht mehr helfen kann.
D.h. die Daten liegen ursprünglich woanders und werden mit einem Tool auf's NAS synchronisiert?

Ich möchte sie ja gar nicht angezeigt bekommen, dass soll der Aufgabenplaner automatisch machen.
Wenn man ein Script über die Kommandozeile testet, sollte man sich erstmal anschauen, was es tun würde, bevor man es dies tun lässt ;)
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
Wenn man ein Script über die Kommandozeile testet, sollte man sich erstmal anschauen, was es tun würde, bevor man es dies tun lässt ;)
Das ist die saubere und sichere Vorgehensweise. Genau wie von @Benares in #11 erwähnt sich zunächst einmal herantasten, gerade dann wenn es um das Löschen von Dateien geht.
Und auch immer zu Raten sich eine Testumgebung zu erstellen die dem Original gleicht um dort seien ersten Gehversuche zu unternehmen.

Ich möchte alle Ordner und Datein in dem Verzeichnis /volume1/daten/video/ alles löschen was älter als, in meinem Fall, 8 Tage ist.
D.h. wenn meine Annahme richtig ist, müsste man nur den Zeitstempel der Verzeichnisse "datum" überprüfen und nicht die darunter liegenden wie Kamera 1, 2, usw. Ist das so korrekt?

Dann würde ich den bereits erwähnten Befehl mit einem -maxdepth 1 erweitern.
Bash:
find /volume1/daten/video/ -maxdepth 1 -type d -ctime +8

Beim Löschen bevorzuge ich anstatt
Bash:
-exec rm -rf {} \;

# entspricht folgendem Befehl
rm -rf dir1; rm -rf dir2; rm -rf dir3; ...

gerne disen Befehl zum Löschen in Kobination mit find
Bash:
| xargs rm -rf

# welches im Grunde disem Befehl entspricht
rm -rf dir1 dir2 dir3 ...

Und weshalb das ganze? Wie man dem Äquivalent der Ausführung entnehmen kann ist die zweite Option in Kombination mit xargs effizienter und somit auch das Löschen viel schneller.
 
Zuletzt bearbeitet:

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
@Benares
Ich möchte sie ja gar nicht angezeigt bekommen,
Das ist uns ja bekannt was du vorhast. Aber @Benares meinte damit eben, dass man das ganze erst auf der Kommandozeile (ganz ohne Aufgabenplaner) ausprobiert um sich die Verzeichnisse anzeigen zu lassen die älter sind als x-Tage. Somit kann man plausibilisieren ob es sich tatsächlich um die Verzeichnisse handelt die gelöscht werden sollen.
 

00schneider1

Benutzer
Mitglied seit
06. Mrz 2023
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Danke euch für die Antworten.

Wo teste ich dann auf der NAS das Skript?

Und ja, die Daten werden auf einem PC aufgezeichnet und dann via ROBO auf die NAS kopiert.

Ein Testerverzeichnis habe ich schon anlegt und versuche da meine Sachen.

Danke
 

00schneider1

Benutzer
Mitglied seit
06. Mrz 2023
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Nein, natürlich nicht^^
Ich versuche jetzt mal das Skript von dir im Aufgabenplaner.
Melde mich.

Danke
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat