robotto7831a Geschrieben 7. Mai 2003 Geschrieben 7. Mai 2003 Hallo zusammen, ich habe einen SuSE 7.3 Linux Server mit Sendmail am laufen. Ich suche jetzt ein kleines Programm oder Shellskript, dass in /var/spool/mail alle Mails löscht, die älter als z. B. 30 Tagen sind. Gibt es sowas bzw. kann mir jemand ein solches Shellskript basteln? Frank
P3AC3MAK3R Geschrieben 7. Mai 2003 Geschrieben 7. Mai 2003 man find liefert u. a. folgendes Beispiel: 6. To remove all files named a.out or *.o that have not been accessed for a week and that are not mounted using nfs, enter: find / \( -name a.out -o -name '*.o' \) -atime +7 -exec rm {} \; -o -fstype nfs -prune Das würde ich für Deinen Fall dann entsprechend umbauen: find /var/spool/mail -atime +30 -exec rm {} \; Am besten probierst Du das erstmal in einem Testverzeichnis aus, da ich jetzt selbst keine Möglichkeit habe, meinen Entwurf zu überprüfen.
robotto7831a Geschrieben 7. Mai 2003 Autor Geschrieben 7. Mai 2003 Vielleicht habe ich jetzt einen Denkfehler, aber löscht mir das nicht die ganze Datei. In der Datei befinden sich ja unter umständen viele Mails. Es sollen ja nur die Mails aus der Datei gelöscht werden, die älter als 30 Tage sind. Frank
Darth_Zeus Geschrieben 7. Mai 2003 Geschrieben 7. Mai 2003 Mit dem atime +30 müsste er nur die erwischen, die älter sind als 30 Tage.
P3AC3MAK3R Geschrieben 7. Mai 2003 Geschrieben 7. Mai 2003 Mit dem atime +30 müsste er nur die erwischen, die älter sind als 30 Tage. Das war zumindest der Plan.
superuser Geschrieben 7. Mai 2003 Geschrieben 7. Mai 2003 Vielleicht habe ich jetzt einen Denkfehler, aber löscht mir das nicht die ganze Datei. In der Datei befinden sich ja unter umständen viele Mails. Es sollen ja nur die Mails aus der Datei gelöscht werden, die älter als 30 Tage sind. Das kommt darauf an welches Format für das Abspeichern der Mails verwendet wird. Sendmail verwendet hierfür ,soweit mir bekannt ist, standarmäßig das "mbox" Format. In diesem Format werden alle Mails in einer einzelnen Datei untereinander abgespeichert. In diesem Fall würde dir das genannte Skript alle Mails löschen. Als andere Möglichkeit gibt es das "maildir" Format zum speichern der Mails. Hierbei wird für jede Mail eine einzelne Datei erzeugt. QMail verwendet zum Beispiel diese Art der Speicherung ob sendmail es unterstützt weis ich nicht. Falls Du also "maildir" einsetzen solltest, kannst Du mit dem Skript alle Mails > 30 Tage löschen. Hoffe geholfen zu haben ... Mfg Superuser
Nachtgeist Geschrieben 7. Mai 2003 Geschrieben 7. Mai 2003 Ich empfehle 'archivemail' [1] - ich verwende es, um meine mailinglisten zu archivieren und/oder alte mails darin einfach wegzuwerfen. Laesst sich auch hervorragend fuer deine Dienste einsetzen ... HTH [1] http://archivemail.sourceforge.net/
robotto7831a Geschrieben 7. Mai 2003 Autor Geschrieben 7. Mai 2003 Das ist genau das was ich gesucht habe. archivemail --days=30 --delete /var/spool/mail/* [/code] Frank
Nachtgeist Geschrieben 12. Mai 2003 Geschrieben 12. Mai 2003 Dacht ich mir Das ist eines der Programme, die bei mir in der Kategorie 'ichweisnichtwasichohnesietunwuerdeoderwasichgemachthabebisichesentdeckthabe' liegen ...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden