Löschen eines Ordnerinhaltes nach 3 Tagen

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

nasnew

Benutzer
Registriert
14. Sep. 2014
Beiträge
34
Reaktionspunkte
0
Punkte
6
Hallo, da ich bisher leider keine Lösung für mein Problem gefunden habe, formuliere ich es nun neu:

Ich möchte den Ordnerinhalt in der Filestation, der älter als 3 Tage ist von

surveillance
@snapshot

automatisch durch die Synology NAS löschen lassen.

Wie kann ich dieses Problem lösen?

Besten Dank!

nasnew
 
Also willkommen im neuen Thema. :)

So herum formuliert lässt es sich natürlich einfach mit dem Aufgabenplaner direkt, oder mit einem script erledigen.

Wie heißt denn der genaue Pfad wo du was löschen willst? Ist das der Gemeinsame Ordner "surveillance" mit Unterordner "@snapshot"? Liegt der auf Volume1?
 
Z.B. mit einem find-Skript, das Du über den Aufgabenplaner laufen läßt. Aber bietet die Surveillance-Station nicht selbst eine solche Option?
 
So ist es. Wegen der Pfadangabe habe ein Bildschirmfoto gemacht. Synology.jpg
 
ok, dann kannst du im Aufgabenplaner mal ein benutzerdefiniertes Script anlegen.
Anstatt einem Script kannst du dort aber auch direkt ein Befehl eintragen.

Im ersten Schritt erstmal rein zum Test, z.B. (wichtig: Ohne Zeilenumbruch eintippen oder einfach copy&paste)
find /volume1/surveillance/@Snapshot/ -type f -mtime +3 > /volume1/surveillance/log.txt
Danach speichern und den Task ausführen.
In der log.txt sollten jetzt alle Dateien älter als 3 Tage aufgeführt werden, die er im Ordner @Snapshot gefunden hat.

Wenn das zur Zufriedenheit ist, kann man den nächsten Schritt gehen und den Befehl modifizieren, dass die Funde dann auch direkt gelöscht werden.

Edit:
Das löschen geht via der Option -delete direkt als Parameter für den find Befehl, also am obigen Beispiel
find /volume1/surveillance/@Snapshot/ -type f -mtime +3 -delete
Achtung, da gibt es keine Rückfragen mehr oder einen doppelten Boden!
 
Zuletzt bearbeitet:
Hallo Fusion,

danke!

Habe ich getestet, doch leider bleibt die Datei log.txt leer.

Woran kann das liegen, also Schnappschüsse zum Finden wären genügend da.

Danke

nasnew
 
Probiere es einmal mit /bin/find statt find.
 
Hab meinen Fehler gefunden.

Vielen herzlichen Dank!!!!!

nasnew
 
Woran hats denn gelegen, wenn ich fragen darf?
 
Die Aufgabe wurde nicht ausgeführt, da ich den falschen Benutzer angegeben hatte
 
Also, das Finden und Schreiben in die log.txt funktioniert.

Das andere Skript zum Löschen leider nicht, es wird nichts gelöscht.

Der Benutzer im Aufgabenmanager ist root, das ist doch richtig? Oder muss ich diesen Benutzer neu anlegen und Rechte zuweisen?

nasnew
 
Dann versuche es bitte einmal mit:

Rich (BBCode):
find /volume1/surveillance/@Snapshot/ -type f -mtime +3 -exec rm -f {} \;
 
find /volume1/surveillance/@Snapshot/ -type f -mtime +3 -exec rm -f {} \;

funktioniert leider auch nicht.

Was mache ich nur falsch?
 
Probier mal als root

sonst /bin/find /volume1/surveillance/@Snapshot/ -type f -mtime +3 -exec rm -f {} \;
 
Ich habe gerade nochmal bei mir nachgesehen (DSM 5.2 allerdings), da gibts nur /usr/bin/find, nicht aber /bin/find. Das nur nochmal zur Sicherheit.
 
/bin/find ist unter DSM 6 aber korrekt.
 
Alles klar, wobei ich mich dunkel erinnere, dass es auch einen Symlink unter /user/bin/find auf /bin/find gibt, aber egal.
 
Habe das unter DSM 5.2 sowohl mit -delete wie auch mit -exec probiert und funktioniert.

Der Task wird normal unter user root angelegt. Neben Tippfehler (wobei ja die log Erstellung funktioniert hat) fällt mir jetzt nur noch ein eventuelles Problem mit den Dateinamen/Umbrüchen ein.

Kannst du dich vielleicht doch mal per SSH auf deine DS einloggen als admin und dann per sudo -i auf root wechseln.
Dann schauen wir mal ob es dort funktioniert bzw. was es für Fehler produziert.
 
Hallo zusammen,

möchte genau das selbe machen wie nasnew, alle Snapshots älter als 3 Tag löschen.

Sowohl
find /volume1/surveillance/@Snapshot/ -type f -mtime +10> /volume1/surveillance/@Snapshot/a_findlog.txt

und

find /volume1/surveillance/@Snapshot/ -type f -mtime +10 -exec rm -f {} \;

haben einwandfrei funktioniert. Ausführung als root. (habe es erst mal mit 10 Tagen probiert)

Mein Problem: In der File Station sind die Dateien wie gesagt gelöscht. Wenn ich mich in der SS einlogge und die Schnappschüsse öffne, werden aber immer noch alle alten Schnappüsse gefunden.... die die älter sind als 10 Tage haben zwar kein Vorschaubild mehr und lassen sich auch nicht öffnen, werden aber in der Liste angezeigt...

Kennt jemand das Problem bzw. woran das liegen könnte?

Danke, Grüße und schönen Sonntag!
 
Bestimmt werden die Schnappschüsse in eine Datenbank gespeichert, weswegen sie noch gelistet sind.
 
Status
Für weitere Antworten geschlossen.
 

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