Re: Mails mit mutt nach Alter wegspeichern
On Tue, Mar 19, 2002 at 10:16:50AM +0100, Udo Mueller wrote: > > > >http://packages.debian.org/ > > -> Im unteren Formular Date/Calc.pm eingeben > > -> Antwort: Paket libdate-calc-perl > > Danke dir! > > > Alternativ kann man auch die Datei Contents-$ARCH.gz benutzen. Siehe > > http://dugfaq.sylence.net/dug-faq/node5.html#SECTION00051000 > > > > Was war daran so schwer? > > Sonst gibt mir apt-cache search immer alle Auskunft die ich haben > will, aber http://packages.debian.org/ wird mir dann ab jetzt > weiterhelfen. Danke! sowas kann apt-cache nicht. hint: apt-file, auto-apt Gruss Grisu -- Michael Bramer - a Debian Linux Developer http://www.debsupport.de PGP: finger [EMAIL PROTECTED] -- Linux Sysadmin -- Use Debian Linux "Before you play two notes learn how to play one note - and don't play one note unless you've got a reason to play it." - Mark Hollis msg04730/pgp0.pgp Description: PGP signature
Re: Mails mit mutt nach Alter wegspeichern
Hi Janto! On Sat, 16 Mar 2002, Janto Trappe wrote: > Hallo Markus, > > * Markus Hubig <[EMAIL PROTECTED]> [14-03-02 13:01]: > > [mutt folder-hook] > >> Es werden erst alle eMails Markiert [T] die Aelter als 1 Monat sind >> [~r>1m], *NICHT* als wichtig markiert sind [!~F] und *NICHT* >> ungelesen/neu sind [!~N]. Dann werden diese eMails automatisch nach >> archiv/debian-user-german gespeichert [;s=archiv/debian-user-german\n]. > [...] > >> Weiss jemand ob es moeglich ist den 'Speichern' Befehl nur dann >> auzufuehren wenn auch eMails markiert sind? So was in der Art: > > IIRC wurde hier schon oefters eine Loesung gepostet die genau das > obige macht, such einfach mal in den *alten* Archiven. Wenn Du etwas > findest kannst Du ja mal bescheid sagen, dann packe ich das in die > FAQ. Also ich muss passen! Ich habe jetzt schon einige male gegoogelt und die Achive durchgesehen aber eine loessung meines Problems habe ich nicht gefunden! Allerdings habe ich einen recht schlecht Dokumentierten Pattern gefunden ~E (Expired messages) ?? Villeicht weiss ja jemand von euch wann genau eine eMail "expired" ist ?? Gruss Markus -- [ markus hubig ] [ mail: [EMAIL PROTECTED] ] [ debian/gnu linux (sid) ] [ vorholzstrasse 6 ] [ saft: [EMAIL PROTECTED] ] [ linux 2.4.17 i686 ] [ 76131 karlsruhe ] [ tele: +049 721 6657522 ] [ reg. Linux user #204961 ] msg04357/pgp0.pgp Description: PGP signature
Re: Mails mit mutt nach Alter wegspeichern
"Tepperis von der Ohe, Michael (LOGICA)" <[EMAIL PROTECTED]> wrote: > da bin ich mal wieder in eine meiner lieblingsfallen getappt. > CPAN ist natuerlich die referenz-adresse fuer perl. die dort > gehosteten module lassen sich nach dem perl-standard > auch easy installieren, sind damit aber natuerlich nicht > debian-konform. also schau mal erst debian, ob es entsprechend > angepasste debian packages fuer das benoetigte perl-paket gibt. [Komplettzitat geloescht] Zur Not gibt es immer noch die Moeglich keitmit dh-make-perl selbst perl-module zu packen. cu andreas PS: Bitte schau dir http://learn.to/quote an. Danke. -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mails mit mutt nach Alter wegspeichern
#include Marko Schulz wrote on Tue Mar 19, 2002 um 03:01:03AM: > > Wo krieg ich das? > >http://packages.debian.org/ > -> Im unteren Formular Date/Calc.pm eingeben > -> Antwort: Paket libdate-calc-perl Hm, ja, das war der Grund, wieso ich mich damals gegen Date::Calc entschieden habe, Date::Manip ist Standard-Umfang, afaik. Gruss/Regards, Eduard. -- Wenn einer träumt, bleibt es ein Traum. Wenn viele träumen, beginnt der Traum, Wirklichkeit zu werden. -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mails mit mutt nach Alter wegspeichern
Hallo Marko, * Marko Schulz <[EMAIL PROTECTED]> [19-03-02 03:01]: > On Tue, Mar 19, 2002 at 12:31:29AM +0100, Udo Mueller wrote: > > > > Beim ausführen schreibt mir perl, daß er Date/Calc.pm nicht finden > > kann. Ich auch nicht auf meiner Platte zu finden? > > > > Wo krieg ich das? > >http://packages.debian.org/ > -> Im unteren Formular Date/Calc.pm eingeben > -> Antwort: Paket libdate-calc-perl Danke dir! > Alternativ kann man auch die Datei Contents-$ARCH.gz benutzen. Siehe > http://dugfaq.sylence.net/dug-faq/node5.html#SECTION00051000 > > Was war daran so schwer? Sonst gibt mir apt-cache search immer alle Auskunft die ich haben will, aber http://packages.debian.org/ wird mir dann ab jetzt weiterhelfen. Danke! Gruss Udo -- ComputerService Müller | You want my PGP-Key? | Key: 0x655D5554 Kaspersweg 11a | mail -s "get pgp-key" | Tel: 0441-36167578 26131 Oldenburg| AD0EEC22 is not guilty | Mobil: 0162-4365411 Registrierter Linux-User #225706 auf Debian GNU/Linux 2.4.17 msg04130/pgp0.pgp Description: PGP signature
Re: Mails mit mutt nach Alter wegspeichern
On Tue, Mar 19, 2002 at 12:31:29AM +0100, Udo Mueller wrote: > > Beim ausführen schreibt mir perl, daß er Date/Calc.pm nicht finden > kann. Ich auch nicht auf meiner Platte zu finden? > > Wo krieg ich das? http://packages.debian.org/ -> Im unteren Formular Date/Calc.pm eingeben -> Antwort: Paket libdate-calc-perl Alternativ kann man auch die Datei Contents-$ARCH.gz benutzen. Siehe http://dugfaq.sylence.net/dug-faq/node5.html#SECTION00051000 Was war daran so schwer? -- marko schulz Diese Mail ist auf Grund von ideologischer Verblendung nach den Regeln der herkömmlichen Rechtschreibung erstellt. Wer verbleibende Fehler findet, darf sie behalten oder sammeln, bis sie ein Lösungswort ergeben. -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mails mit mutt nach Alter wegspeichern
Hallo Johannes, * Johannes Kolb <[EMAIL PROTECTED]> [16-03-02 01:10]: > > Ich hab das Skript mal umgeschrieben, so dass es die Dateien > gleich schreibt - und ein Test mit einer 2 MB-Mail ergab Laufzeiten in > der Größenordnung eines cp-Befehls. > # > # Changes by Johannes Kolb: > # * use Date::Calc instead of Date::Manip to increase performance > # * no buffering of whole mailbox-files in memory > > die "Usage: $0 DAYS FILES\nwhere\nDAYS is an integer specifying the maximum age of a >mail in days and\nFILES one or more mbox file(s).\n" if ($#ARGV < 1 | >$ARGV[0]=~/[:^digit:]/); > use Date::Calc qw(Parse_Date Today Delta_Days); Beim ausführen schreibt mir perl, daß er Date/Calc.pm nicht finden kann. Ich auch nicht auf meiner Platte zu finden? Wo krieg ich das? Gruss Udo -- ComputerService Müller | You want my PGP-Key? | Key: 0x655D5554 Kaspersweg 11a | mail -s "get pgp-key" | Tel: 0441-36167578 26131 Oldenburg| AD0EEC22 is not guilty | Mobil: 0162-4365411 Registrierter Linux-User #225706 auf Debian GNU/Linux 2.4.17 msg04122/pgp0.pgp Description: PGP signature
Re: Mails mit mutt nach Alter wegspeichern
Hallo Markus, * Markus Hubig <[EMAIL PROTECTED]> [14-03-02 13:01]: [mutt folder-hook] > Es werden erst alle eMails Markiert [T] die Aelter als 1 Monat sind > [~r>1m], *NICHT* als wichtig markiert sind [!~F] und *NICHT* > ungelesen/neu sind [!~N]. Dann werden diese eMails automatisch nach > archiv/debian-user-german gespeichert [;s=archiv/debian-user-german\n]. [...] > Weiss jemand ob es moeglich ist den 'Speichern' Befehl nur dann > auzufuehren wenn auch eMails markiert sind? So was in der Art: IIRC wurde hier schon oefters eine Loesung gepostet die genau das obige macht, such einfach mal in den *alten* Archiven. Wenn Du etwas findest kannst Du ja mal bescheid sagen, dann packe ich das in die FAQ. Janto -- Janto TrappeGermany /* rapelcgrq znvy cersreerq! */ GnuPG-Key: http://www.sylence.de/gpgkey.asc Key ID: 0x8C53625F Fingerprint:35D7 8CC0 3DAC 90CD B26F B628 C3AC 1AC5 8C53 625F -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mails mit mutt nach Alter wegspeichern
Hallo zusammen, On Wed, Mar 13, 2002 at 05:49:09PM +0100, Eduard Bloch wrote: > #include > Udo Mueller wrote on Wed Mar 13, 2002 um 05:00:56PM: > > > alzu gut mit binaries zurechtkommt, die an den Mails hängen? Hab > > eine MB mit ner 6 MB MP3 und da ackert mail-expire schon seit ner > > 1/4 Stunde dran rum. > > Möglich, ich lasse es nur auf Mailing-Listen los, und da tut es seit > Monaten tadellos. Ich hoffe, du kannst mit Perl debuggen ;) IMHO liegt das Problem darin, dass zunächst die gesamte Mailbox in das Array $data eingelesen wird und danach erst die Ausgabedateien erzeugt werden. Ich hab das Skript mal umgeschrieben, so dass es die Dateien gleich schreibt - und ein Test mit einer 2 MB-Mail ergab Laufzeiten in der Größenordnung eines cp-Befehls. Um das Ganze noch ein bißchen schneller zu machen, habe ich auch die Funktionen aus Date::Manip duch Funktionen von Date::Calc ersetzt; die sind angeblich besser. cu, Johannes #!/usr/bin/perl # mail-expire, Version 0.0.3, Mon Apr 16 14:40:40 CEST 2001 # Copyright: Eduard Bloch <[EMAIL PROTECTED]> # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. The full text of GPL can be # found on http://www.gnu.org or in /usr/share/common-licenses/GPL on # modern Debian systems. # # --- # If you make changes to this script, please feel free to forward the new # version to <[EMAIL PROTECTED]> or <[EMAIL PROTECTED]> # --- # # Changes by Johannes Kolb: # * use Date::Calc instead of Date::Manip to increase performance # * no buffering of whole mailbox-files in memory die "Usage: $0 DAYS FILES\nwhere\nDAYS is an integer specifying the maximum age of a mail in days and\nFILES one or more mbox file(s).\n" if ($#ARGV < 1 | $ARGV[0]=~/[:^digit:]/); use Date::Calc qw(Parse_Date Today Delta_Days); $c=-1; @today = Today(); $olddate = localtime(time - $ARGV[0] * 86400); $olddate =~ s/\ /_/g; JOB: foreach $file (1..$#ARGV) { close(neu); close(alt); undef @st; undef @time; undef $c; $oldsize = (stat("$ARGV[$file]"))[7]; if ($oldsize == 0) { syswrite(STDOUT,"Empty file $ARGV[$file], skipping"); next JOB; }; if(!open(fh,"<$ARGV[$file]")) { syswrite(STDOUT,"$ARGV[$file] could not be opened, skipping"); next JOB; }; if(flock(fh,2|4)){ # lock when not locked allready by another process flock(fh,2); } else { # skip file close(fh); syswrite(STDOUT,"$ARGV[$file] is locked by an other prozess, skipping."); next JOB; }; open(neu,">$ARGV[$file]".".tmp"); open(alt,">$ARGV[$file]".".$olddate"); syswrite (STDOUT,"Reading ans splitting $ARGV[$file] ($oldsize bytes)...\n"); while() { if(/^From \S/) { $c++; @maildate = Parse_Date($_); $diff = Delta_Days(@maildate,@today); syswrite(STDOUT, "Age: $diff day".(($diff > 1) ? "s" :"")." -> "); if ($diff > $ARGV[0]) { $isold = 1; $alte++; syswrite(STDOUT, "old.\n"); } else { $isold = 0; $neue++; syswrite(STDOUT, "new.\n"); } } if ($isold) { print alt $_; } else { print neu $_; } } close(fh); # MUST BE CLOSED BEFORE STAT'ING THEM close(neu); close(alt); (undef,undef,undef,undef,undef,undef,undef,$newsize)=stat("$ARGV[$file]".".tmp"); @st = stat("$ARGV[$file]".".$olddate"); $newsize += $st[7]; syswrite (STDOUT,"Wrote $neue new entries to $ARGV[$file]".".tmp\n"); syswrite (STDOUT,"Wrote $alte old entries to $ARGV[$file]".".$olddate\n"); if($oldsize == $newsize) { syswrite (STDOUT,"Deleting $ARGV[$file]... "); unlink("$ARGV[$file]") || die "failed"; syswrite (STDOUT,"replacing with the new mailbox... "); rename("$ARGV[$file]".".tmp", "$ARGV[$file]") || die "failed"; syswrite (STDOUT,"done.\n"); } else { syswrite(STDOUT,"hm, $oldsize = $newsize?"); } }
Re: Mails mit mutt nach Alter wegspeichern
Hi Deutsche! On Wed, 13 Mar 2002, Markus Hubig wrote: > Hi Jens! > > On Wed, 13 Mar 2002, Jens Benecke wrote: > >> On Wed, Mar 13, 2002 at 03:41:02PM +0100, Udo Mueller wrote: >> >>> ich möchte gerne meine Mailboxen klein halten und würde mutt gern >>> veranlassen, automatisch bei Betreten oder verlassen alle Mails älter >>> als n Tage in die Savebox zu speichern und im aktuellen Folder zu >>> löschen. >> >> Meine Makros: >> macro index "T~r>1m\n;s=Archiv" #"Alle Messages älter 1 Monat archivieren" > > Das ganze kann man bei Bedarf auch mit einem Folder-Hook > automatisieren: > > | folder-hook =debian-user-german$ 'push T~r>1m\n;s=Archiv";' > > *ACHTUNG* _nicht_ getestet! Und sicher kann man das auch noch so > erweitern dass es nur GELESENE eMails verschiebt. OK, jetzt habe ich es getestet. Funzt auch prinzipiel! Mein Folder-Hook sieht jetzt so aus (eine Zeile): | folder-hook =debian-user-german 'push | T~r>1m!~F!~N\n\;s=archiv/debian-user-german\n' Es werden erst alle eMails Markiert [T] die Aelter als 1 Monat sind [~r>1m], *NICHT* als wichtig markiert sind [!~F] und *NICHT* ungelesen/neu sind [!~N]. Dann werden diese eMails automatisch nach archiv/debian-user-german gespeichert [;s=archiv/debian-user-german\n]. Ein Problem gibt es allerdings: Wenn der Markierungsbefehl [T~r>1m!~F!~N] nichts Markiert (z.B.: weil es keine eMails gibt die aelter als 1Monat sind) findet [;] nix, und der Speichern-Befehl [s=archiv/debian-user-german\n] wird auf die acktuell ausgewaehlte eMail angewendet! }8-( Weiss jemand ob es moeglich ist den 'Speichern' Befehl nur dann auzufuehren wenn auch eMails markiert sind? So was in der Art: | if [~T]; then | ;s=archiv/debian-user-german\n | fi Gruss Markus -- [ markus hubig ] [ mail: [EMAIL PROTECTED] ] [ debian/gnu linux (sid) ] [ vorholzstrasse 6 ] [ saft: [EMAIL PROTECTED] ] [ linux 2.4.17 i686 ] [ 76131 karlsruhe ] [ tele: +049 721 6657522 ] [ reg. Linux user #204961 ] msg03793/pgp0.pgp Description: PGP signature
Re: Mails mit mutt nach Alter wegspeichern
Hi Jens! On Wed, 13 Mar 2002, Jens Benecke wrote: > On Wed, Mar 13, 2002 at 03:41:02PM +0100, Udo Mueller wrote: > >> ich möchte gerne meine Mailboxen klein halten und würde mutt gern >> veranlassen, automatisch bei Betreten oder verlassen alle Mails älter >> als n Tage in die Savebox zu speichern und im aktuellen Folder zu >> löschen. > > Meine Makros: > macro index "T~r>1m\n;s=Archiv" #"Alle Messages älter 1 Monat archivieren" Das ganze kann man bei Bedarf auch mit einem Folder-Hook automatisieren: | folder-hook =debian-user-german$ 'push T~r>1m\n;s=Archiv";' *ACHTUNG* _nicht_ getestet! Und sicher kann man das auch noch so erweitern dass es nur GELESENE eMails verschiebt. Gruss Markus -- [ markus hubig ] [ mail: [EMAIL PROTECTED] ] [ debian/gnu linux (sid) ] [ vorholzstrasse 6 ] [ saft: [EMAIL PROTECTED] ] [ linux 2.4.17 i686 ] [ 76131 karlsruhe ] [ tele: +049 721 6657522 ] [ reg. Linux user #204961 ] msg03754/pgp0.pgp Description: PGP signature
Re: Mails mit mutt nach Alter wegspeichern
Hallo Eduard, * Eduard Bloch <[EMAIL PROTECTED]> [13-03-02 17:49]: > Udo Mueller wrote on Wed Mar 13, 2002 um 05:00:56PM: > > > alzu gut mit binaries zurechtkommt, die an den Mails hängen? Hab > > eine MB mit ner 6 MB MP3 und da ackert mail-expire schon seit ner > > 1/4 Stunde dran rum. > > Möglich, ich lasse es nur auf Mailing-Listen los, und da tut es seit > Monaten tadellos. Ich hoffe, du kannst mit Perl debuggen ;) Ich weiss grad mal, daß perl ne Programmiersprache ist ;) Ne, aber das Script arbeitet wohl, es dauert nur elendig lange, bis er das MP3 durchgearbeitet hat. Ich lass das in zukunft auch nur auf die ML's los, dann dauert das nicht so lang. Danke dir für's Script. Gruss Udo -- ComputerService Müller | You want my PGP-Key? | Key: 0x655D5554 Kaspersweg 11a | mail -s "get pgp-key" | Tel: 0441-36167578 26131 Oldenburg| AD0EEC22 is not guilty | Mobil: 0162-4365411 Registrierter Linux-User #225706 auf Debian GNU/Linux 2.4.17 msg03739/pgp0.pgp Description: PGP signature
Re: Mails mit mutt nach Alter wegspeichern
* Thomas Huemmler <[EMAIL PROTECTED]> [13.03.02 17:22]: > google mal nach box2mutt, das verschiebt mit Hilfe des mbox-Befehls > gelesene Mails in Archive. Aargh, was sag ich. So ein Quatsch. box2mutt erzeugt eine Datei mit mbox-hook-Befehlen von Mailboxen, die per source-Befehl zu laden ist und dann beim Verlassen der Mailbox die enthaltenen Mails archivieren will. Eine Zeile in der von mbox2mutt erzeugten Datei sieht so aus: mbox-hook ! 'in-l-debian-user' +Archiv/lists/l-debian-user/`date +%Y-%m` Thomas -- Thomas Hümmler * [EMAIL PROTECTED] * http://www.huemmler.de -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mails mit mutt nach Alter wegspeichern
#include Udo Mueller wrote on Wed Mar 13, 2002 um 05:00:56PM: > alzu gut mit binaries zurechtkommt, die an den Mails hängen? Hab > eine MB mit ner 6 MB MP3 und da ackert mail-expire schon seit ner > 1/4 Stunde dran rum. Möglich, ich lasse es nur auf Mailing-Listen los, und da tut es seit Monaten tadellos. Ich hoffe, du kannst mit Perl debuggen ;) Gruss/Regards, Eduard. -- The good thing about standards is that there are so many to choose from. -- Andrew S. Tanenbaum msg03734/pgp0.pgp Description: PGP signature
Re: Mails mit mutt nach Alter wegspeichern
Hallo Eduard, * Eduard Bloch <[EMAIL PROTECTED]> [13-03-02 16:12]: > #include > Udo Mueller wrote on Wed Mar 13, 2002 um 03:41:02PM: > > Hallo Leute, > > > > ich möchte gerne meine Mailboxen klein halten und würde mutt gern > > veranlassen, automatisch bei Betreten oder verlassen alle Mails > > Dafür braucht es keinen Mutt, siehe Anhang. Oh, schön. Ich danke dir. Kann es sein, daß das Perl-Script nicht alzu gut mit binaries zurechtkommt, die an den Mails hängen? Hab eine MB mit ner 6 MB MP3 und da ackert mail-expire schon seit ner 1/4 Stunde dran rum. Gruss Udo -- ComputerService Müller | You want my PGP-Key? | Key: 0x655D5554 Kaspersweg 11a | mail -s "get pgp-key" | Tel: 0441-36167578 26131 Oldenburg| AD0EEC22 is not guilty | Mobil: 0162-4365411 Registrierter Linux-User #225706 auf Debian GNU/Linux 2.4.17 msg03729/pgp0.pgp Description: PGP signature
Re: Mails mit mutt nach Alter wegspeichern
* Udo Mueller <[EMAIL PROTECTED]> [13.03.02 15:52]: > Habt ihr da schon was fertiges oder muß ich selbst mich an ein > mutt-Makro machen, obwohl ich da noch keine ahnung von hab.. google mal nach box2mutt, das verschiebt mit Hilfe des mbox-Befehls gelesene Mails in Archive. HTH, Thomas -- Thomas Hümmler * [EMAIL PROTECTED] * http://www.huemmler.de -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mails mit mutt nach Alter wegspeichern
#include Udo Mueller wrote on Wed Mar 13, 2002 um 03:41:02PM: > Hallo Leute, > > ich möchte gerne meine Mailboxen klein halten und würde mutt gern > veranlassen, automatisch bei Betreten oder verlassen alle Mails Dafür braucht es keinen Mutt, siehe Anhang. MfG, Eduard. -- #include #!/usr/bin/perl # mail-expire, Version 0.0.3, Mon Apr 16 14:40:40 CEST 2001 # Copyright: Eduard Bloch <[EMAIL PROTECTED]> # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. The full text of GPL can be # found on http://www.gnu.org or in /usr/share/common-licenses/GPL on # modern Debian systems. # # --- # If you make changes to this script, please feel free to forward the new # version to <[EMAIL PROTECTED]> or <[EMAIL PROTECTED]> # --- die "Usage: $0 DAYS FILES\nwhere\nDAYS is an integer specifying the maximum age of a mail in days and\nFILES one or more mbox file(s).\n" if ($#ARGV < 1 | $ARGV[0]=~/[:^digit:]/); use Date::Manip; $c=-1; $today = ParseDate("today"); $olddate = localtime(time - $ARGV[0] * 86400); $olddate =~ s/\ /_/g; JOB: foreach $file (1..$#ARGV) { close(neu); close(alt); undef @st; undef @time; undef @data; undef $c; (undef,undef,undef,undef,undef,undef,undef,$oldsize)=stat("$ARGV[$file]"); if ($oldsize == 0) { syswrite(STDOUT,"Empty file $ARGV[$file], skipping"); next JOB }; if(!open(fh,"<$ARGV[$file]")) { syswrite(STDOUT,"$ARGV[$file] could not be opened, skipping"); next JOB; }; if(flock(fh,2|4)){ # lock when not locked allready by another process flock(fh,2); } else { # skip file close(fh); syswrite(STDOUT,"$ARGV[$file] is locked by an other prozess, skipping."); next JOB; }; syswrite (STDOUT,"Reading $ARGV[$file] ($oldsize bytes) "); while() { if(/^From\s.*\@.*\s(\S\S\S\s\S\S\S\s\d\d\s\d\d:\d\d:\d\d\s\d\d\d\d)/) { $c++; $time[$c]=$1; # grep and store time lines in time array, index-nr = c syswrite (STDOUT,"."); } $data[$c] = $data[$c] . $_; # store mail contents in data array, index-nr = c } syswrite (STDOUT,"\n"); close(fh); open(neu,">$ARGV[$file]".".tmp"); open(alt,">$ARGV[$file]".".$olddate"); for(0..$c) { @calc = split(/:/, &DateCalc(&ParseDate($time[$_]),$today)); $diff = ($calc[2] * 7) + $calc[3]; syswrite(STDOUT, $time[$_]." -> Age: $diff day".(($diff > 1) ? "s" :"")." -> "); if ($diff > $ARGV[0]) { print alt $data[$_]; $alte++; syswrite(STDOUT, "old.\n"); } else { print neu $data[$_]; $neue++; syswrite(STDOUT, "new.\n"); } } # MUST BE CLOSED BEFORE STAT'ING THEM close(neu); close(alt); (undef,undef,undef,undef,undef,undef,undef,$newsize)=stat("$ARGV[$file]".".tmp"); @st = stat("$ARGV[$file]".".$olddate"); $newsize += $st[7]; syswrite (STDOUT,"Wrote $neue new entries to $ARGV[$file]".".tmp\n"); syswrite (STDOUT,"Wrote $alte old entries to $ARGV[$file]".".$olddate\n"); if($oldsize == $newsize) { syswrite (STDOUT,"Deleting $ARGV[$file]... "); unlink("$ARGV[$file]") || die "failed"; syswrite (STDOUT,"replacing with the new mailbox... "); rename("$ARGV[$file]".".tmp", "$ARGV[$file]") || die "failed"; syswrite (STDOUT,"done.\n"); } else { syswrite(STDOUT,"hm, $oldsize = $newsize?"); } } msg03723/pgp0.pgp Description: PGP signature