Veröffentlicht 7. Mai 200322 j 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
7. Mai 200322 j 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.
7. Mai 200322 j Autor 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
7. Mai 200322 j Mit dem atime +30 müsste er nur die erwischen, die älter sind als 30 Tage. Das war zumindest der Plan.
7. Mai 200322 j 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
7. Mai 200322 j 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/
7. Mai 200322 j Autor Das ist genau das was ich gesucht habe. archivemail --days=30 --delete /var/spool/mail/* [/code] Frank
12. Mai 200322 j Dacht ich mir Das ist eines der Programme, die bei mir in der Kategorie 'ichweisnichtwasichohnesietunwuerdeoderwasichgemachthabebisichesentdeckthabe' liegen ...
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.