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 Zitieren
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. Zitieren
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 Zitieren
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. Zitieren
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. Zitieren
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 Zitieren
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/ Zitieren
robotto7831a Geschrieben 7. Mai 2003 Autor Geschrieben 7. Mai 2003 Ich werde es mal probieren. Frank Zitieren
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 Zitieren
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 ... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.