Dateien Automatisch Löschen

Status
Für weitere Antworten geschlossen.

Toby-ch

Benutzer
Mitglied seit
02. Okt 2013
Beiträge
436
Punkte für Reaktionen
17
Punkte
18
Hallo zusammen

Gibt es eine Möglichkeit wie ich in einem Ordner eine oder alle Dateien nach bsp. 3 Monaten automatisch löschen kann.
Oder evtl. mit einer Rückfrage bsp.

Die Datei Backup.zip liegt jetzt seit 3 Monaten im Ordner Archiv soll er nun endgültig gelöscht werden?

Besten dank für eure Hilfe.
 

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
903
Punkte für Reaktionen
64
Punkte
54
Mit einem cron Job (heisst glaube ich Aufgabenplaner in Synologisch :D) kannst Du per find Befehl automatisch Dateien automatisch wie gewuenscht wenn sie aelter sind als ein Zeitraum loeschen lassen. Nur kannst Du da nichts mit Rueckfrage machen. Siehe dazu die Frage und Antwort auf stackoverflow
 

Toby-ch

Benutzer
Mitglied seit
02. Okt 2013
Beiträge
436
Punkte für Reaktionen
17
Punkte
18
@framp

Nja die Rückfrage lässt sich verschmerzen. Gibt es auch eine GUI Lösung, ich habs nicht so mit den Scripts :rolleyes:
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
903
Punkte für Reaktionen
64
Punkte
54
... ich habs nicht so mit den Scripts :rolleyes:
Leider nein. Ich habs nicht so mit GUIs :D

Aber es ist wirklich nicht viel was Du da schreiben musst. Es ist wirklich nur eine einzige Zeile. Lass Dich nicht von den vielen Optionen von find irritieren. find ist eben sehr maechtig. Suche einfach mal im Netz nach loeschen von dateien find linux und Du wirst eine Menge Beispiele finden. Allerdings solltest Du zuerst kein richtiges rm benutzen sondern nur ein
Code:
-exec echo rm -v {}
um zu sehen was geloescht werden wuerde ;) Wenn dann alles genau getestet wurde nimmst Du das echo weg und die Dateien werden wirklich geloescht.

Disclaimer: Wie immer - Du solltest ein aktuelles Backup haben :rolleyes:
 
Zuletzt bearbeitet:

DrDeath

Benutzer
Mitglied seit
31. Aug 2018
Beiträge
189
Punkte für Reaktionen
71
Punkte
34
Beispiel Ausgabe ohne Löschen:

Rich (BBCode):
find /volume1/pfad/zur/archivdatei/ -mtime +90 -print

Beispiel Ausgabe mit Löschen

Rich (BBCode):
find /volume1/pfad/zur/archivdatei/ -mtime +90 -print -delete
 
  • Like
Reaktionen: Toby-ch

georg2204

Benutzer
Mitglied seit
16. Dez 2019
Beiträge
7
Punkte für Reaktionen
2
Punkte
3
Hallo,

wie müsste das Script angepasst werden, wenn in den jeweiligen homes-Verzeichnis der verschiedenen User jeweils im dortigen Unterordner "Dateiempfang" und "Dateiversand" (bei allen gleich) nach Dateien und Ordnern gesucht werden soll, welche älter als vier Wochen sind? Diese sollen dann gelöscht werden, aber eben nur alles was älter als vier Wochen ist.
Ansonsten müsste ich für jeden User ein Script basteln...

Danke und Gruß,

Georg
 

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.214
Punkte für Reaktionen
503
Punkte
174
Kopiere die Zeilen aus dem vorgenannten Beispiel mehrfach untereinander und passe die einzelnen Zeilen an ...
 

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
903
Punkte für Reaktionen
64
Punkte
54
... oder baue eine kleine Schleife a là
Code:
for user in georg andi framp; do
        find /volume1/$user/subdir ...
done
 

Toby-ch

Benutzer
Mitglied seit
02. Okt 2013
Beiträge
436
Punkte für Reaktionen
17
Punkte
18
So ich klinke mich auch wieder ein:
Würde auch folgendes gehen: Somit sollte doch alles gelöscht werden was im Ordner ( Del-60Tage) liegt?
Rich (BBCode):
find /volume1/Archiv/Daten/Del-60Tage/ -mtime +60 -print -delete

Gibt es die Möglichkeit das ganze noch auf zu zeichnen was alles gelöscht wurde ? in einer TXT.?
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234
... oder baue eine kleine Schleife a là
Wenn sowieso alle Unterverzeichnisse betroffen sind, kann man auch ein Sternchen nehmen:
Rich (BBCode):
 find /volume1/*/subdir
Hier muss man aber sehr genau wissen was man tut. ;)
 

georg2204

Benutzer
Mitglied seit
16. Dez 2019
Beiträge
7
Punkte für Reaktionen
2
Punkte
3
Danke für eure Antworten!

Das würde doch bedeuten mit dem Befehl:

find /volume1/homes/*/Dateiempfang -atime +31 -delete

und

find /volume1/homes/*/Dateiversand -atime +31 -delete

Könnte ich dann alle Dateien und Ordner welche älter als 31 Tage sind von allen Usern mit den entsprechendem Löschbefehl entfernen ohne die vorgegebenen Standardrdner zu löschen? Die hier eingesetzte Diskstation dient nur dem Datenaustausch und wird für nichts anderes verwendet.

Danke und Gruß,

Georg
 

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.214
Punkte für Reaktionen
503
Punkte
174
Schau Dir noch den Parameter '-type' an.
'find -type f' beschränkt die Suche auf Files.
'find -type d' verarbeitet Directories.

Wäre halt noch einen Blick wert.
 
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