PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : viele Mails automatisch löschen



titus-noone
24.07.05, 20:59
Hallo Allerseits.

Ich hab folgendes Problem. Bei uns in der Wg steht ein Linux-Server zur "Anbindung an die Aussenwelt". Da der vorige Admin gerade ausgezogen ist hab ich jetzt das root-PW samt Pflegeauftrag. Nun hab ich festgestellt, das in der mailbox von root ca. 32.000 Emails leigen, von denen vielleicht 30.000 nahezu identisch sind.

Da es sich jeweils nur um cron-Fehlermeldungen beim verbinden mit einem Zeit-Server handelt, liefern sie nicht wirklich interessantes und ich kann darauf verzichten.

Jetzt kann ich natürlich pine öffnen, warten bis die Inbox eingelesen ist und allen von Hand als gelesen markieren. Will ich aber aus naheliegenden Gründen nicht.

Hat jemand eine Idee wie ich die Mails einfach loswerde? Sind immerhin auch mehr als 200 MB an Speicherplatz.


Im Moment liegen all die Mails noch in /var/spool/mail/root

Vielen Dank schonmal.

titus

Blade
25.07.05, 07:09
Öffne eine Konsole und gehe ins Verzeichnis:
/var/spool/mail/root
Dort tippst Du dann folgendes ein:
> root
das war's schon, alles ist gelöscht.

reno
25.07.05, 09:09
Öffne eine Konsole und gehe ins Verzeichnis:
/var/spool/mail/root
Dort tippst Du dann folgendes ein:
> root
das war's schon, alles ist gelöscht./var/spool/mail/root dürfte kein Verzeichnis sein. Entweder gehe ins Verzeichnis /var/spool/mail und tippe "rm root", oder tippe gleich "rm /var/spool/mail/root". :cool:

Blade
25.07.05, 10:58
nö hast Recht, klappt aber auch mit einer Datei ;) .

titus-noone
25.07.05, 19:44
Naja, ...fast.

Tut mir leid, ich merke das ich mein Problem zu ungenau beschrieben habe.

Es geht mir nicht darum, alle Emails zu löschen, sondern nur einen grossen Teil (30.000 von 32.000). Und zwar alle die, die die Zeile :


netdate: ntps1-1.cs.tu-berlin.de: unknown host

enthalten.

Die anderen will ich behalten. Sind ja auch die täglichen Reports von uucp, squid und ähnlichem dabei, die ich noch aufheben will.

Ich muss also die Mails irgendwie sortieren, oder um es mit den Gebrüdern Grimm zu sagen: Die guten ins Töpfchen, die schlechten ins Kröpfchen.. (http://de.wikipedia.org/wiki/Aschenputtel)

Nun ja, meine nächste Idee wäre ein sed-Script, das mir diese Mails sucht und löscht. Damit hab ich aber noch nie gearbeitet, kann also dauern, bis ich die Lösung für mein Problem habe. Wenn jemand Ahnung von sed hat und mir 'nen Tip geben kann bin ich immer dankbar. Natürlich auch, wenn es Lösungsvorschläge gibt, die noch nicht angedacht wurden.

Ok, vielen Dank schonmal für die ersten Ideen.

titus

Blade
25.07.05, 20:06
Dann würde ich auch sagen, dass Du Dir ein Script basteln musst, und nicht mit dem eisernen Besen fegen! Im Moment fällt mir dazu nix besseres ein, sorry :( .

muell200
26.07.05, 12:55
ich habe einen cyrus laufen...

dort lasse ich einaml pro woche meine spam-email löschen/verschieben

mit: ipurge...

evt. hilft dir das weiter...

maximan
26.07.05, 18:36
#!/usr/bin/perl
$zeile = "muss weg";

foreach $file (@ARGV)
{
unless(system("grep -q \"$zeile\" \"$file\" "))
{
print "Entferne $file\n";
system("rm \"$file\"");
}
}


$zeile anpassen. Dann nur noch "./script /mailverzeichniss/* " aufrufen.
Keine Garantie, Keine Gewährleistung ;)

titus-noone
26.07.05, 20:45
Danke, ich denke das wird mir weiterhelfen.

Vorher muss ich aber auch noch die mails aus dem mbox Format ins Maildir Format konvertieren. Im Moment liegen sie nämlich in einer sehr langen Datei, und nunja, die wäre bei diesem Script ja dann wohl weg.

Und das will ich ja gerade nicht.

Aber vielen dank trotzdem, ich such gerade schon was zum konvertieren...

titus

EDIT: Nun, nachdem ich jetzt alles ins mailbox-Fromat konvertiert habe, überigens mit Hilfe eines Perls-Scripts http://perfectmaildir.home-dn.net/
konnte ich das Scipt ausprobieren. Und es läuft, bis aus folgende kleine Einschränkung:


bash: ./maildel.sh: /usr/bin/perl: bad interpreter: Argument list too long


Der will keine 30.000 Dateien auf einmal.

Glcüklicherweise sind die durchnummeriert, und jetzt lösch ich sie halt blockweise. Nun ja, leider schafft er pro Block nur ca 4MB, das heisst für mich gut 90 mal RETURN tippen.

Aber trotzdem danke, es klappt schliesslich.

titus

muell200
27.07.05, 08:08
EDIT: Nun, nachdem ich jetzt alles ins mailbox-Fromat konvertiert habe, überigens mit Hilfe eines Perls-Scripts http://perfectmaildir.home-dn.net/


hallo

zum schluss noch ne blöde frage:
was ist ein mailbox format?

verwendet cyrus das mailbox format?

Danke

titus-noone
29.07.05, 22:51
Hallo.

mailbox war natürlich Blödsinn. Maildir war gemeint.

Aber die verschiedenen mailbox-Formate (hier stimmts) sind ein Kapitel für sich. Da gibt es haufenweise spezielle, unter Windows hat fast jedes Programm ein eigenes. Unter *nix und Linux gibt es zwei, die hauptsächlich anzutreffen sind. mbox und halt maildir.

Der Hauptunterschied zwischen den beiden ist glaub ich, das mbox alle Emails in einer Datei speichert und maildir für jede Email eine eigene Datei anlegt.

Wenn dich das weiter interessiert, dann schau doch mal unter http://www.linux-user.de/ausgabe/2005/01/024-mailformate/
da gibts einen recht informativen Text dazu.

Wenn man dem Artikel oben Glauben schenken darf, dann nutzt Cyrus das maildir Format.

So, mehr zu mailbox-Formaten will ich nicht schreiben, dafür hab ich davon zu wenig Ahnung. Wenn ich hier völligen Mist geschrieben habe, kann mich ja jemand korrigieren.


Ach ja, ipurge für eine mbox Datei, das wärs gewesen. Da hätte ich mir viel Arbeit sparen können. Aber sowas hab ich nicht gefunden.


titus