Dateien nach 21 Tagen löschen

Probleme mit Samba, NFS, FTP und Co.
Antworten
xcheta
Beiträge: 14
Registriert: 15.03.2015 11:42:13

Dateien nach 21 Tagen löschen

Beitrag von xcheta » 15.03.2016 15:27:02

Hallo zusammen,

wir betreiben in unserem Firmennetz die "OwnCloud". Dieses funktioniert wunderbar, allerdings soll die Cloud nicht zum Datenfriedhof werden, da diese nur zum Austausch größerer Dateien mit externen Firmen verwendet werden soll. Ich möchte gerne die Dateien nach 21 Tagen löschen. Problem an der Sache ist, es sind ca. 100 Benutzer. OwnCloud erstellt für jeden Benutzer ein Verzeichnis mit Nummern und Buchstaben.
Wenn ich also explizit ein Verzeichnis angeben könnte, habe ich diese Befehle gefunden.

Mit dem Befehl find, könnt Ihr Euch erstmal die Dateien anzeigen lassen, die betroffen sind:

Code: Alles auswählen

find /zielverzeichnis -type f -mtime +5 | xargs ls -l

Habt Ihr die Ausgabe überprüft, könnt Ihr die Dateien anschließend wie folgt löschen:

Code: Alles auswählen

find /zielverzeichnis -type f -mtime +5 | xargs rm
Problem hierbei ist, man kann nur ein bestimmtes Verzeichnis angeben. In meinem fall liegen die Verzeichnisse unter OwnCloud unter /var/WWW/html/owncloud/data . Hier liegen dann in Unterordner die Einzelnen Userordner.

Kann man den Befehl so modifizieren, dass alle Dateien die in den Unterordnern von

Code: Alles auswählen

/var/WWW/html/owncloud/data 
liegen und älter als 21 Tage sind, automatisch gelöscht werden.

Ich danke euch jetzt schon :D

Falls ihr fragen habt und etwas nicht verstanden habt sagt es ruhig =)

uname
Beiträge: 12072
Registriert: 03.06.2008 09:33:02

Re: Dateien nach 21 Tagen löschen

Beitrag von uname » 15.03.2016 15:47:57

Vielleicht so:

Code: Alles auswählen

find /var/WWW/html/owncloud/data -type f -mtime +21 | xargs ls -l
find /var/WWW/html/owncloud/data -type f -mtime +21 | xargs rm
Wirklich WWW und nicht www?
Ersten Befehl nur zum anzeigen und kontrollieren.
Zweiten Befehl zum löschen.
Am besten vorher eine Sicherung machen.
Leider weiß ich auch nicht ob es z.B. Probleme mit speziellen Dateinamen (Leezeichen, Sonderzeichen, ...) geben kann.

Benutzeravatar
hikaru
Moderator
Beiträge: 13585
Registriert: 09.04.2008 12:48:59

Re: Dateien nach 21 Tagen löschen

Beitrag von hikaru » 15.03.2016 15:49:18

Ich fürchte, du hast hier ein Verständnisproblem. Das was du als /zielverzeichnis bezeichnest, ist nicht das, was der Name vielleicht suggeriert. Es ist nicht zwangsläufig das letzte Unterverzeichnis in eine Baum, sondern kann ein beliebiges Verzeichnis davor sein. Es ist der Ausgangspunkt an dem find anfängt nach Dateien zu suchen. Dabei werden auch Unterverzeichnisse berücksichtigt.

Wenn es also in /zielverzeichnis noch die Unterverzeichnisse alice, bob und claire gibt, dann sucht find auch dort. Dein eigentliches Problem mit den Unterordnern sollte sich also gar nicht auftun.

xcheta
Beiträge: 14
Registriert: 15.03.2015 11:42:13

Re: Dateien nach 21 Tagen löschen

Beitrag von xcheta » 15.03.2016 16:05:32

Super, Unterverzeichnisse die älter sind wie 21 Tage werden ja nicht gelöscht, es handelt sich bei diesem Befehl nur um die Dateien oder ?

uname
Beiträge: 12072
Registriert: 03.06.2008 09:33:02

Re: Dateien nach 21 Tagen löschen

Beitrag von uname » 15.03.2016 16:17:16

Ja.

Code: Alles auswählen

-type f

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Dateien nach 21 Tagen löschen

Beitrag von smutbert » 15.03.2016 16:18:06

find mit Option -type f sucht nur nach Dateien nicht Verzeichnissen und rm ohne Option -r greift Verzeichnisse nicht an. Davor bist du also sicher.

Benutzeravatar
Huck Fin
Beiträge: 1202
Registriert: 10.03.2008 17:10:30

Re: Dateien nach 21 Tagen löschen

Beitrag von Huck Fin » 06.04.2016 11:00:21

Ich lösche in meinem Papierkorb dateien älter 4 Tage so

Code: Alles auswählen

find /home/daten/.recycle/. -depth -mtime +4 -exec rm{} \;
Der löscht aber auch Verzeichnisse...

Benutzeravatar
Meillo
Moderator
Beiträge: 8813
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Dateien nach 21 Tagen löschen

Beitrag von Meillo » 06.04.2016 11:36:55

Huck Fin hat geschrieben:

Code: Alles auswählen

find ... -exec rm{} \;
Dann kannst du doch auch gleich `-delete' verwenden. Das geht auch statt `| xargs rm'. Oder habe ich was uebersehen?
Use ed once in a while!

Benutzeravatar
MSfree
Beiträge: 10752
Registriert: 25.09.2007 19:59:30

Re: Dateien nach 21 Tagen löschen

Beitrag von MSfree » 06.04.2016 11:52:52

Huck Fin hat geschrieben:Ich lösche in meinem Papierkorb dateien älter 4 Tage so

Code: Alles auswählen

find /home/daten/.recycle/. -depth -mtime +4 -exec rm{} \;
Der löscht aber auch Verzeichnisse...
Nein, -exec rm {} löscht keine Verzeichnisse. (abgesehen davon, fehlt in deinem Code ein Blank zwischen rm und {})

Benutzeravatar
Huck Fin
Beiträge: 1202
Registriert: 10.03.2008 17:10:30

Re: Dateien nach 21 Tagen löschen

Beitrag von Huck Fin » 06.04.2016 12:29:34

OK hab es selber gemerkt
Hab es geändert...

Code: Alles auswählen

#!/bin/bash
# löschen aller Dateien älter 4 Tage
find /home/daten/.recycle/. -depth -mtime +4 -exec rm -rf {} \;
# löschen aller leeren SubDirs
find /home/daten/.recycle/. -type d -empty -exec rmdir {} \;

uname
Beiträge: 12072
Registriert: 03.06.2008 09:33:02

Re: Dateien nach 21 Tagen löschen

Beitrag von uname » 06.04.2016 13:18:24

Ein fehlerhaftes Datum (aktuell bzw. auch in der nahen Vergangenheit) kann zu einem Totalverlust führen. Daher solltest du sicherheitshalber ein Backup der Daten anfertigen. Ich lege z.B. 31 inkrementelle Backupversionen aller Dateien an (effektiv nur doppelte Datenmenge). Die Auswirkungen evtl. Fehler sind bei mir weit geringer.

Antworten