Dateien nach X Tagen automatisch löschen
Dateien nach X Tagen automatisch löschen
Hi, mein Virenscanner markiert verseuchte Emails und verschiebt die in einen extra Ordner. Jetzt möchte ich diese nach X Tagen automatisch löschen lassen (per Cron). Jemand ne Idee? danke. :)
P.S. Die Forensuche brachte nix
P.S. Die Forensuche brachte nix
cu aM
-
[ djthesound ]
- Posts: 300
- Joined: 2003-04-21 01:15
Re: Dateien nach X Tagen automatisch löschen
Könnte auch sowas brauchen, stelle mich auch mal in der Reihe der Interessierten an. Wie kann man sowas schnell und einfach realisieren?
Re: Dateien nach X Tagen automatisch löschen
So spontan hätte ich jetzt logrotate gesagt.
Ist zwar für Logfiles gedacht, aber wieso sollte es nicht auch mit eMails funtionieren?!
Ist zwar für Logfiles gedacht, aber wieso sollte es nicht auch mit eMails funtionieren?!
-
[ djthesound ]
- Posts: 300
- Joined: 2003-04-21 01:15
Re: Dateien nach X Tagen automatisch löschen
Hi kahler,
dann hilf mir mal weiter, wie das denn gehen sollte oder du dir das vorstellst? :?:
Gruss DJtheSOUND
dann hilf mir mal weiter, wie das denn gehen sollte oder du dir das vorstellst? :?:
Gruss DJtheSOUND
-
captaincrunch
- Userprojekt

- Posts: 7066
- Joined: 2002-10-09 14:30
- Location: Dorsten
- Contact:
Re: Dateien nach X Tagen automatisch löschen
Ansonsten :
Dadurch erreichst du, dass Dateien, die vor mehr als 2 Tagen zuletzt in Gebrauch waren (atime) automatisch gelöscht wurden. Bau dir das als Conjob, und du hast die Lösung. Für Detailverbesserungen empfehle ich die manpage zu find ...
Code: Select all
find /pfad/zu/den/files -atime 2 -exec rm -R {} ;DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
Re: Dateien nach X Tagen automatisch löschen
danke. das nenn ich konstruktives miteinander. :) 
cu aM
Re: Dateien nach X Tagen automatisch löschen
Leider funzt der Befehl nicht. Es passiert gar nix. :roll: :?:CaptainCrunch wrote:Code: Select all
find /pfad/zu/den/files -atime 2 -exec rm -R {} ;
cu aM
Re: Dateien nach X Tagen automatisch löschen
Ohne es wirklich getestet zu haben (nur aus meinen bisherigen Erfahrungen heraus):adjustMan wrote:Leider funzt der Befehl nicht. Es passiert gar nix. :roll: :?:CaptainCrunch wrote:Code: Select all
find /pfad/zu/den/files -atime 2 -exec rm -R {} ;
1. Das Ende ist fehlerhaft, statt '-exec rm -R {} ;' solltest Du '-exec rm -f {} ;' versuchen
2. mach ein 'man find' und lies Dir die Abschnitte zu den Zeitangaben durch, hier gibt es ganz gewaltige Unterschiede zwischen den einzelnen *NIXen in der Verwendung von '+', '-' oder auch '' (leer).
3. Füge hinten an die Befehlszeile noch ein ' >> /pfad/zum/debugfile 2>&1' an, eventuelle Fehlermeldungen kannst Du Dir dann wenigstens noch ansehen ...
-
[ djthesound ]
- Posts: 300
- Joined: 2003-04-21 01:15
Re: Dateien nach X Tagen automatisch löschen
Hallo Leutz,
also einfach den Befehl in den CRON rein oder auch in ein Script? (Muss ich dann was anpassen oder ändern?).
Und dann wäre es auch noch interessant, ob dies auch auf einen entfernten FTP-Server anwendbar ist, müßte doch gehen - aber wie?
Gruss
DJtheSOUND
also einfach den Befehl in den CRON rein oder auch in ein Script? (Muss ich dann was anpassen oder ändern?).
Und dann wäre es auch noch interessant, ob dies auch auf einen entfernten FTP-Server anwendbar ist, müßte doch gehen - aber wie?
Gruss
DJtheSOUND
Re: Dateien nach X Tagen automatisch löschen
Eleganter und versionssicherer wäre es, den Befehl und eventuelle Zusatzaktionen (Protokoll, Prüfungen, etc.) in eine Datei zu schreiben (an chmod denken) und diese dann per CronTab aufzurufen.[ DJtheSOUND ] wrote:Hallo Leutz,
also einfach den Befehl in den CRON rein oder auch in ein Script? (Muss ich dann was anpassen oder ändern?).
Und dann wäre es auch noch interessant, ob dies auch auf einen entfernten FTP-Server anwendbar ist, müßte doch gehen - aber wie?
Gruss
DJtheSOUND
Technisch spricht nichts gegen einen Eintrag dieser Befehlszeile direkt in der CronTab, allerdings wird diese so nicht gerade übersichtlicher und eventuelles Debuggen und Loggen fällt schwerer ...
Wenn Du die Funktion hinreichend getestet hast und alles in einem Skript steht, kannst Du dieses auf den entfernten Rechner kopieren und per ssh aufrufen (ssh ist nicht nur ein Tool zur Remotewartung sondern auch für den von Dir erfragten Zweck erdacht worden :) ) 'man ssh' gibt Dir die näheren Informationen :)
-
olaf.dietsche
- Posts: 401
- Joined: 2002-12-19 02:06
- Location: Siegburg
Re: Dateien nach X Tagen automatisch löschen
Zwei Verbesserungen möchte ich vorschlagen:CaptainCrunch wrote:Ansonsten :Dadurch erreichst du, dass Dateien, die vor mehr als 2 Tagen zuletzt in Gebrauch waren (atime) automatisch gelöscht wurden. Bau dir das als Conjob, und du hast die Lösung. Für Detailverbesserungen empfehle ich die manpage zu find ...Code: Select all
find /pfad/zu/den/files -atime 2 -exec rm -R {} ;
Code: Select all
find /pfad/zu/den/files -atime +2 | xargs rm -f-atime habe ich selber noch nie ausprobiert, sondern immer -mtime benutzt, aber -atime sollte genauso gut funktionieren.
Re: Dateien nach X Tagen automatisch löschen
-atime -> Accestime, also Zeitunkt des letzten Zugriffsolaf.dietsche wrote:Zwei Verbesserungen möchte ich vorschlagen:Mit plus vor der zwei werden alle Dateien gefunden, die zwei Tage und älter sind. Das xargs rm bewirkt, daß rm nicht für jede Datei einzeln aufgerufen wird, sondern mehrere Dateinamen an ein rm übergeben wird. Das kann bei sehr vielen Dateien effizienter sein.Code: Select all
find /pfad/zu/den/files -atime +2 | xargs rm -f
-atime habe ich selber noch nie ausprobiert, sondern immer -mtime benutzt, aber -atime sollte genauso gut funktionieren.
-mtime -> Modificatioin time, also Zeitpunkt der letzten Ã?nderung
-ctime -> Change time -> ähnlich wie oben
Es gibt noch einige weitere Schalter die sich alle mit 'man find' oder 'info find' ermitteln lassen :)
-
captaincrunch
- Userprojekt

- Posts: 7066
- Joined: 2002-10-09 14:30
- Location: Dorsten
- Contact:
Re: Dateien nach X Tagen automatisch löschen
1. -R löscht rekursiv, -f nur ohne Nachfrage. Falsch ist das also nicht ... ;)1. Das Ende ist fehlerhaft, statt '-exec rm -R {} ;' solltest Du '-exec rm -f {} ;' versuchen
2. mach ein 'man find' und lies Dir die Abschnitte zu den Zeitangaben durch, hier gibt es ganz gewaltige Unterschiede zwischen den einzelnen *NIXen in der Verwendung von '+', '-' oder auch '' (leer).
2. Auch wenn ich hier sonst immer so auf Portabilität poche, handelt es sich hier um einen Linux-Rechner ... ;)
ACK, hatte ich nicht bedacht ...Das xargs rm bewirkt, daß rm nicht für jede Datei einzeln aufgerufen wird, sondern mehrere Dateinamen an ein rm übergeben wird. Das kann bei sehr vielen Dateien effizienter sein.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
Re: Dateien nach X Tagen automatisch löschen
Ich hab jetzt mit allen erdenklichen Varianten von find probiert. Es wird nix gelöscht. Das Problem wird sein, dass der Ordner, in dem die Files liegen, dem User und der Gruppe uucp gehören. Ist vom Antivirenprogramm so vorgegeben. Wie löse ich denn das?olaf.dietsche wrote: Zwei Verbesserungen möchte ich vorschlagen:Code: Select all
find /pfad/zu/den/files -atime +2 | xargs rm -f
cu aM
-
olaf.dietsche
- Posts: 401
- Joined: 2002-12-19 02:06
- Location: Siegburg
Re: Dateien nach X Tagen automatisch löschen
Das kann zwei Ursachen haben:adjustMan wrote:Ich hab jetzt mit allen erdenklichen Varianten von find probiert. Es wird nix gelöscht. Das Problem wird sein, dass der Ordner, in dem die Files liegen, dem User und der Gruppe uucp gehören. Ist vom Antivirenprogramm so vorgegeben. Wie löse ich denn das?olaf.dietsche wrote: Zwei Verbesserungen möchte ich vorschlagen:Code: Select all
find /pfad/zu/den/files -atime +2 | xargs rm -f
- die Rechte für das Verzeichnis erlauben das Löschen der Dateien nicht
- atime wird aktualisiert, sobald auf die Datei zugegriffen wird und somit wird nie +2 Tage erreicht
Falls die Rechte nicht stimmen, musst du entweder das Kommando mit dem richtigen Benutzer ausführen oder aber für das Verzeichnis die Schreibrechte ändern.
Falls es am atime liegt - wie gesagt, ich habe das selbst nie ausprobiert - dann versuche es mal mit mtime.
Hilfreich wäre natürlich die Fehlermeldung/Ausgabe von find+rm.
Re: Dateien nach X Tagen automatisch löschen
Da weiss ich nicht, was das Antivirenproggie dazu sagt. :)Falls die Rechte nicht stimmen, musst du entweder das Kommando mit dem richtigen Benutzer ausführen oder aber für das Verzeichnis die Schreibrechte ändern.
Schon probiert. bringt nix.Falls es am atime liegt - wie gesagt, ich habe das selbst nie ausprobiert - dann versuche es mal mit mtime.
Ja, das wär interessant. ABER, es gibt keine. :?:Hilfreich wäre natürlich die Fehlermeldung/Ausgabe von find+rm.
cu aM
-
rootmaster
- Posts: 483
- Joined: 2002-04-28 13:30
- Location: Hannover
Re: Dateien nach X Tagen automatisch löschen
hmm, mach mal als root ein manuellen test mit
"back to the roots"
Code: Select all
find /pfad/zum/verzeichnis -depth -ctime +X -exec rm -rf {} ;
Cahn's Axiom:
When all else fails, read the instructions
When all else fails, read the instructions
Re: Dateien nach X Tagen automatisch löschen
no Chance, nicht mit
?? Auch keine Fehlermeldung
Code: Select all
ctime mtime atimecu aM
-
olaf.dietsche
- Posts: 401
- Joined: 2002-12-19 02:06
- Location: Siegburg
Re: Dateien nach X Tagen automatisch löschen
Werden die Dateien, die älter als zwei Tage sind, überhaupt gefunden?adjustMan wrote:Ja, das wär interessant. ABER, es gibt keine. :?:Hilfreich wäre natürlich die Fehlermeldung/Ausgabe von find+rm.
Code: Select all
find /pfad -mtime +2Code: Select all
find /pfad -mtime +2 | xargs rmCode: Select all
find /pfad -mtime +2 | xargs echo rmRe: Dateien nach X Tagen automatisch löschen
:?: Nein :roll: Aber es liegen 2 vom 11.06.03 drin. Hab ich extra mit vi angelegt. ABER, eben probiert. mit -2 werden sie gefunden.Werden die Dateien, die älter als zwei Tage sind, überhaupt gefunden?
cu aM
-
olaf.dietsche
- Posts: 401
- Joined: 2002-12-19 02:06
- Location: Siegburg
Re: Dateien nach X Tagen automatisch löschen
Ich habe gerade noch mal einadjustMan wrote::?: Nein :roll: Aber es liegen 2 vom 11.06.03 drin. Hab ich extra mit vi angelegt. ABER, eben probiert. mit -2 werden sie gefunden.Werden die Dateien, die älter als zwei Tage sind, überhaupt gefunden?
Code: Select all
man findRe: Dateien nach X Tagen automatisch löschen
nein, so funzt es auch nicht. Ich hab es schon mit +1 probiert. Ging auch nicht. Müsste man evtl. einen abschliessenden Slash und ein * ( /*) machen?
cu aM
Re: Dateien nach X Tagen automatisch löschen
Hi
Funktioniert Super
Löscht alle Dateien die älter sind als 15 Tage !!!
FRAGE :?: Kann mann das auch anhand der größe machen ??
also: wenn datei <= 300 byte rm ??
Thx im Vorraus
OvErToP
Funktioniert Super
Code: Select all
find /counterstrike/logs -atime +15 | xargs rm -f
Löscht alle Dateien die älter sind als 15 Tage !!!
FRAGE :?: Kann mann das auch anhand der größe machen ??
also: wenn datei <= 300 byte rm ??
Thx im Vorraus
OvErToP
Re: Dateien nach X Tagen automatisch löschen
-size +/- nOvErToP wrote:Hi
Funktioniert Super
Code: Select all
find /counterstrike/logs -atime +15 | xargs rm -f
Löscht alle Dateien die älter sind als 15 Tage !!!
FRAGE :?: Kann mann das auch anhand der größe machen ??
also: wenn datei <= 300 byte rm ??
Thx im Vorraus
OvErToP
man find
Re: Dateien nach X Tagen automatisch löschen
Nach vielen weiteren erfolglosen Versuchen habe ich jetzt ein Script (was ich erfolgreich zum löschen "alter" Backups benutze, umgeschrieben. Das Script:
Das wird jetzt durch Cron aufgerufen UND funktioniert auch nicht? Von der Debianliste hab ich den Hinweis bekommen, das mein Dateisystem per NFS gemountet sein könnte!? Andere Frage: Wie gebe ich explizit ein, das ROOT löscht?
Ach ja, die Meldung von Cron:
Code: Select all
#!/bin/sh
dir="/var/spool/avmailgate/rejected";
delete="1"; # Nach X Tagen loeschen
find $dir/. -type f -mtime +$delete -exec /bin/rm {} ;Ach ja, die Meldung von Cron:
Code: Select all
Null message body; hope that's okcu aM