Alte Backups löschen, Problem mit find

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
carsten2
Beiträge: 109
Registriert: 26.09.2003 04:43:04

Alte Backups löschen, Problem mit find

Beitrag von carsten2 » 12.03.2007 08:11:40

Hallo,
folgende Zeile soll in einem Backupscript alle Dateien löschen die 6 Tage oder älter sind:

Code: Alles auswählen

find /usr/lib/FrontBase/Backups -mtime 6 -exec rm -rf {} \;
das macht er auch von Dienstag bis (wahrscheinlich) Sonntag problemlos. Am Montag morgen sind dann aber alle Dateien in dem Verzeichnis weg :oops:
Die Syntax stimmt doch, oder ?

Carsten

goecke
Beiträge: 289
Registriert: 12.01.2007 11:57:27

Beitrag von goecke » 12.03.2007 09:15:52

Hi,

(Ich habe keinen richtigen(tm) Rechner hier, also aus dem Gedächtnis)
ich glaube es geht mit -mtime -6, sollte abe in der man / info page Stehen

gruss
Johannes

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 12.03.2007 09:24:36

nope auf jeden Fall "+6" (älter oder gleich 6*24h her)

ABER schau in die Manpage.. (kannst das ganze auch mal mit "-ctime" versuchen)
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

fuzzy
Beiträge: 1021
Registriert: 04.10.2003 12:15:52

Beitrag von fuzzy » 12.03.2007 09:33:19

http://www.broennimann-capelli.ch/linux_utilities.htm
...also ich würde es eher mal hiermit probieren:

Code: Alles auswählen

find /usr/lib/FrontBase/Backups -mtime +7 -exec ls -hl {} \;
bzw. wie sieht das Ergebnis von folgendem Befehl aus?

Code: Alles auswählen

ls -hl /usr/lib/FontBase/Backups/ 
...nach einer Woche, die der Rechner nicht läuft, würden deine Backups gelöscht werden.

Ein anderer Ansatz ist z.B. "die letzen n Backups behalten"...
http://debianforum.de/forum/viewtopic.p ... 3&start=45 Lösung von Savar

Gruß fuzzy

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 12.03.2007 09:46:48

fuzzy hat geschrieben:Ein anderer Ansatz ist z.B. "die letzen n Backups behalten"...
http://debianforum.de/forum/viewtopic.p ... 3&start=45 Lösung von Savar
Hui ist das lange her :)
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

carsten2
Beiträge: 109
Registriert: 26.09.2003 04:43:04

Beitrag von carsten2 » 12.03.2007 11:19:43

Kann es sein, daß -mtime nicht auf Verzeichnisse angewendet werden kann und er mir deshalb nach 6 Tagen das gesamte Verzeichnis killt? Der manpage zu find habe ich jetzt mehrfach gelesen und eine andere Erklärung finde ich nicht mehr.


Carsten

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 12.03.2007 11:38:58

ah das ist natürlich dann auch klar..

du must dem find noch ein "-a -type f" mitgeben.. da das Verzeichnis nachdem es angelegt wurde natürlich nicht mehr geändert wurde.. heißt, nach 6 Tagen ists halt 6 Tage alt..
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

carsten2
Beiträge: 109
Registriert: 26.09.2003 04:43:04

Beitrag von carsten2 » 12.03.2007 13:55:16

Savar hat geschrieben:ah das ist natürlich dann auch klar..

du must dem find noch ein "-a -type f" mitgeben.. da das Verzeichnis nachdem es angelegt wurde natürlich nicht mehr geändert wurde.. heißt, nach 6 Tagen ists halt 6 Tage alt..
Es wird aber leider geändert. Jeden Tag um 3:00 Uhr macht er ein Backup und schreibt das in das Verzeichnis. Das Datum des Verzeichnisses wird dabei aktualisiert. Habe ich gerade nochmal getestet und das funktioniert. Deshalb habe ich ja auch mtime verwendet.
Mein Problem ist das ich nicht weiß wie viele Unterverzeichnisse und wie viele Dateien es dort gibt. Ich möchte nur alles löschen was älter als 6 Tage ist. Laut der Manpage von find hätte er mit obiger Syntax genau das tun sollen.

Code: Alles auswählen

find  durchsucht eine oder mehrere Verzeichnishierarchien nach Dateien mit bestimmten Eigenschaften, und führt damit bestimmte Aktionen aus.
...
-mtime N
              der Inhalt der Datei wurde vor N*24 Stunden verändert

Code: Alles auswählen

gamma:/usr/local/bin# ls -hl /usr/lib/FrontBase/Backups/
insgesamt 4,0K
drwxr-xr-x  2 root root 4,0K 2007-03-12 10:55 TimberPlan.fb
Backupscript manuell gestartet

Code: Alles auswählen

gamma:/usr/local/bin# ls -hl /usr/lib/FrontBase/Backups/
insgesamt 4,0K
drwxr-xr-x  2 root root 4,0K 2007-03-12 13:49 TimberPlan.fb
Das scheint doch alles zu passen.
Was bedeutet "-a"? Das finde ich nicht in der Manpage. Und "-type f" ist auch nicht so gut. Eigentlich sollten schon auch Verzeichnisse gelöscht werden wenn sie älter als 6 Tage sind.

Carsten

Antworten