Aufgabenplaner soll alte Dateien löschen, nach meinen Vorgaben

Status
Für weitere Antworten geschlossen.

Hans_01

Benutzer
Mitglied seit
12. Mai 2009
Beiträge
49
Punkte für Reaktionen
1
Punkte
8
Hallo Leute,

ich habe einen gemeinsamen Ordner für die Sicherungen erstellt.
Eine mir wichtige Software sichert immer und alles im Ordner "BACKUP" als ZIP Dateien (jeweils 2 Gb groß) ab.
Mit der Zeit wird der Ordner bzw. die DS bald voll werden.

Hat jemand eine Idee, wie ich die alten ZIP Dateien automatisiert löschen kann?

Ich denke mir der "Aufgabenplaner" könnte da sehr hilfreich sein, aber auch andere Ansätze wären willkommen.
Jedenfalls das mit den selbst erstellt Scripts verstehe ich nicht (finde darüber auch nichts).
Hat jemand eine Info darüber?

LG - Hans

DS716, DSM 6.1.3 Update 1
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.013
Punkte für Reaktionen
1.285
Punkte
804
Hast Du Shellzugriff (ssh/telnet) und ein wenig Erfahrung mit der Nutzung einer Linux-Shell? Ich kann Dir gern eine find-Zeile schreiben, aber Du musst den Pfad anpassen. Dazu musst Du den korrekten Pfad kennen bzw. auf einer Shell überprüfen und idealerweise die Zeile erstmal auf der Shell mit einem Testverzeichnis auf Korrektheit prüfen.
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.148
Punkte für Reaktionen
906
Punkte
424
Im Aufgabenplaner kann man benutzerdefinierte Scripts eintragen. Du brauchst noch nicht mal ein Script, eine einzige Befehlszeile reicht schon aus.

/usr/bin/find /volume1/GemeinsamerOrdner/Order -type f -mtime +7 -exec rm {} \;

Das würde alle Dateien die älter als 7 Tage sind, und die sich unter GemeinsamerOrdner/Ordner befinden, löschen.

Also VORSICHT.

Lieber nochmal nachfragen mit konkreten Angaben zu deiner Ordnerstruktur, oder mal mit Testordnern und Daten probieren.

Zum testen kann man auch anstatt dem Löschvorgang die Dateinamen die gelöscht werden würde in eine Datei ausgeben lassen.

/usr/bin/find /volume1/GemeinsamerOrdner/Order -type f -mtime +7 -exec ls {} \; >/volume1/GemeinsamerOrdner/results.txt 2>/volume1/GemeinsamerOrdner/results.err
 

Hans_01

Benutzer
Mitglied seit
12. Mai 2009
Beiträge
49
Punkte für Reaktionen
1
Punkte
8
Hallo "dil88" und "Fusion"
Ihr seit aber fix drauf - Gratulation. Ich kann die Scripts lesen und im Internet recherchieren was mit den Befehlen so gemeint ist (Pfadangabe bekomme ich hin) - wenn es um anpassen geht bin ich auf "try and error" angewiesen.
Als Beweis kann ich sagen - bei .../GemeinsamerOrdner/Order da fehlt ein "n" -> grins .
Ja, vorsichtig beim löschen bin ich immer - deshalb ist mein erster Schritt mir eine Bastelbox zu kaufen. Aber der Ansatz ist genau das was ich gesucht habe.
LG - Hans
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.148
Punkte für Reaktionen
906
Punkte
424
Könnte ja jetzt behaupten wäre Absicht gewesen. :)

Ist ja eh nur als Beispiel gedacht gewesen für z.B.
Gemeinsamer Ordner = MeineDokumente
Order / UnterOrdner = Banksachen

Sobald Leerzeichen auftauchen musst du mit "..." zum umschließen für die Pfade arbeiten, sonst geht es in die Hose.
 

tproko

Benutzer
Sehr erfahren
Mitglied seit
11. Jun 2017
Beiträge
2.101
Punkte für Reaktionen
253
Punkte
129
Noch eine kurze Ergänzung zu find ... nachdem ich die exec Syntax jedes mal aufs neue verfluche.
find bietet bei aktuelleren Versionen die Möglichkeit, gefundene Dateien direkt zu löschen.

Aber so als auch so, vorher unbedingt mal Testen und das exec rm bzw. -delete erst machen wenn du dir sicher bist.


find . -maxdepth 1 -name foo -delete
 

Hans_01

Benutzer
Mitglied seit
12. Mai 2009
Beiträge
49
Punkte für Reaktionen
1
Punkte
8
Hallo Leute,

die Info war punktgenau - super.
Ich habe das Script einmal direkt im Aufgabenplaner eingegeben als auch als externes Script (abgelegt in einem Verzeichnis "Scripts") aufgerufen. Beides geht wunderbar. Genau so wie ich es haben wollte. Hab es sogar mit Sonderzeichen im Pfad versucht und es unter Anführungszeichen gesetzt. Mit "-maxdepth 1" lasse ich nur eine Ebene löschen zu.

/usr/bin/find "/volume1/DATEN/Adam#Johanna#20-09-47#f/21 Apr 2017#16-53-01" -type f -mtime +50 -maxdepth 1 -exec rm {} \;
Pfad ist absichtlich extra lang mit Sonderzeichen und Leerzeichen.

Es radiert alles weg was älter als 50 Tage ist und nur im vorgegeben Pfad. Perfekt.

Danke für die Info.
LG - Hans
 

PsychoHH

Benutzer
Mitglied seit
03. Jul 2013
Beiträge
2.967
Punkte für Reaktionen
4
Punkte
78
Einzig sowas wie -name "*.zip" würde ich dann wohl noch aufnehmen :)

Ach und auf die Reihenfolge achten, sonst meckert find.
-maxdepth 1 -type f -mtime +50 -name "*.zip"
 
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 

 
 
  AdBlocker gefunden!

Du bist nicht hier, um Support für Adblocker zu erhalten. Dein Adblocker funktioniert bereits ;-)

Klar machen Adblocker einen guten Job, aber sie blockieren auch nützliche Funktionen.

Das Forum wird mit hohem technischen, zeitlichen und finanziellen Aufwand kostenfrei zur Verfügung gestellt. Wir zeigen keine offensive Werbung und bemühen uns um eine dezente Integration.

Bitte unterstütze dieses Forum, in dem du deinen Adblocker für diese Seite deaktivierst.

Du kannst uns auch über unseren Kaffeautomat einen Kaffe ausgeben oder ein PUR Abo abschließen und das Forum so werbefrei nutzen.

Vielen Dank für Deine Unterstützung!