Der Mausputz ist das Programm, das die Mails in der Messagebase als gelöscht markiert und auch löscht, User den 'gelöscht' Status verpaßt (die User aber nicht löscht!), den persönlichen Programmteil aufräumt und in den anderen Programmteilen auch aufräumt (was macht der da?). Außerdem legt es ein neues MCALL.LOG an und sichert die alten.
Bei jedem normalen Aufruf (also ohne Parameter) werden nur die Mails als gelöscht markiert, aber nicht aus der Messagebase entfernt. Genauso werden die User nicht als gelöscht markiert (Status gelöscht im Benutzerdateneditor)
Die als gelöscht markierten Mails werden normalerweise in der Nacht von Montag zu Dienstag aus der Messagebase entfernt. Das kann aber auch vorher passieren, wenn entweder ForceAllwaysProgPutz True ist, oder die Werte von KrunchMax bzw. KrunchProzent überschritten werden. Das alles schreibt der Mausputz aber in das neue MCALL.LOG, das er anlegt.
Die User werden entweder bei dem krunchen der Messagebase als gelöscht markiert (also in der Nacht von Montag zu Dienstag) oder beim Parameteraufruf /B. Für die Variableneinstellungen siehe das Kapitel über das User löschen
Wenn man die als gelöscht markierten User wirklich aus der Datei MUSER.DAT löschen will, muß man das Programm KRUNUSER benutzten. Dieses entfernt wirklich die entsprechenden Datensätze.
Die Mausputzvariablen kann man entweder im m7com.cfg mit angeben oder man legt ein MAUSPUTZ.CFG an, in die man dann alle wichtigen Variablen kopiert. Das ist aber nicht zu empfehlen, dann man bei jeder Pfad-Änderung immer zwei Files pflegen muß.
MausPutz-Parameter:
/V | geschwätzig |
/P | PMs krunchen |
/A | AMs krunchen |
/B | User löschen |
/L | NICHT löschen |
/F | Krunch forcieren |
/M | Programmteil nicht putzen |
/? | Hilfe |
MSGID kontrolliert die Message-Ids oder kann auch IDs in die Messagebase setzte (z.B. nach einen Messagebasecrash). Einmal ohne Parameter aufrufen, und man sieht die Aufrufbeispiele.
MsgId 1.10 - Überprüfung der MsgIds
AC | zeigt summarisch Ids aus AC |
LIST AC | listet alle Ids aus AC auf |
ALL | zeigt summarisch Ids aller Mäuse |
SET 12345 | trägt eine Msg mit dieser Id ein |
/P .. | alle obigen Kommandos für PMs |
Nachdem der Mausputz eine Gruppe geputzt hat, prüft er, wie alt
die älteste Nachricht in der Gruppe ist. Wenn diese Nachricht von
heute ist, bekommt der WoSysop folgende Meldung:
Von : MausPutz @ B (So, 31.12.95 05:38)
An : Sysop @ B
05:10 >>> Check für zu knappe Putzgrenzen:
05:10 Zu knapp: Große.Gruppe
In dem Fall haben Deine User ein echtes Problem, wenn sie Nachrichten
von gestern kommentieren wollen, weil diese Nachrichten nicht mehr in der
Messagebase sind. Weiterhin ist es denkbar, daß Nachrichten, die kurz
vorher mit dem Netz angekommen sind, auch schon gelöscht wurden.
Abhilfe: An den entsprechenden Variablen in der M7COM.CFG drehen, damit der
Mausputz in der Große.Gruppe genügend Nachrichten vorhält.
Aktiviert wird der Check über die Variable AufbewahrungsCheck
das Programm KRUNUSER entfernt die vom MausPutz als gelöscht markierten User aus der Datei MUSER.DAT. Vor jeden KRUNUSER Aufruf werden von den zu verändernden Dateien BackUps angelegt.
ACHTUNG!!! Nach erfolgreichen Lauf des KRUNUSER am besten die Datei 'Recover.BAT' im Backupverzeichnis umbenennen. Sonst kommt man irgendwann später ausversehen mal auf die Datei, der Batch startet und kopiert die alten User und Messagebasedaten zurück. Danach kann man die Messagebase (sowohl PM als auch ÖM) wegschmeisen und hat den Userstand vom letzten KRUNUSER lauf.
Die Defaultwerte für das löschen in den Gruppen werden durch die folgenden Variablen vorgegeben. Wenn eins von den Kriterien zutrifft, wird in der Gruppe gelöscht:
Für einzelne Gruppen gibt man die Werte dann so an:
MsgOut_SYSOPS := 'T 30 Z 300 K 1000'; ['']
Für die PMs sind die Variablen folgende:
MsgOutOldPM | nach soviel Tagen werden Mails, die den Status gelesen, beantwortet oder im Maustausch haben gelöscht. |
MsgOutActivePM | das gleiche für nicht gelesene oder zurückgestellte Mails |
BEinmalKA := 5;
BEinmalKZ := 5;
BEinmalLZ := 60;
BNeuLZ := 180;
BAltKA := 26;
BAltKZ := 32767;
BAltLZ := 182;
"B" wie Benutzer.
"Einmal" sollen Benutzer sein, die "nur einmal anrufen" - tatsächlich ist die Bedingung etwas komplizierter (<KA Anrufe in <KZ Tagen). "Neu" ist ein Benutzer danach.
Dann wird er möglicherweise Zahler und ist vor dem Löschen sicher. Und schließlich "Alt".
"KA" - Anzahl der (A)nrufe, die die Grenze für diese (K)lasse darstellen.
"KZ" - (Z)eit (in Tagen, erster bis letzter Anruf), die die Grenze für diese(K)lasse darstellt.
"LZ" - (Z)eit (in Tagen, nach dem letzten Anruf), nach der ge(L)öscht wird.
Sonderfälle: ex-Zahler sind immer Altbenutzer. SysOps werden nur gemahnt, nicht gelöscht.
Nachfrage:
Altuser wären ja in obigem Beispiel User, die innerhalb der letzten 32767 Tagen max. 25x angerufen hätten - was sind sie danach?
oder andersherum gefragt:
Ich will, dass Ex-zahler frühestens nach einem Jahr geloescht werden, wie mache ich das?
BaltLZ:=365?
BEinmalKA := ; [3]
BEinmalKZ := ; [3]
BEinmalLZ := ; [30]
innerhalb von 2 tagen hoechstens 2 anrufe -> kill nach 30 tagen?
; BNeuLZ := ; [90]
mehr als 3 Anrufe -> kill nach 90 Tagen?
ciao, udo
Und dann noch das passende Stückchen Source-Code
Von : Gereon Steffens @ K2 (Do, 04.05.95 18:25) RId : <199505040135.a25057@wi.maus.de> >Gereon, kannst Du der Vollständigkeit halber noch die Statements mit >den anderen vier Konfig-Variablen (BEinmalKA, -KZ, -LZ und BNeuLZ) >posten? Klar. Hier der komplette Ausschnitt: if not BP^.paid then begin Write(Scr, BP^.Nummer: 7, #8#8#8#8#8#8#8); KeinAnruf := today - BP^.LastCallD; TageOnline := BP^.LastCallD - BP^.LogInDate + 1; if (BP^.PayDate > 0) { hatte mal gezahlt } or (BP^.CallCount >= BAltKA) or (TageOnline >= BAltKZ) then ex := KeinAnruf > BAltLZ else if (BP^.CallCount < BEinmalKA) or (TageOnline < BEinmalKZ) then ex := KeinAnruf > BEinmalLZ else ex := KeinAnruf > BNeuLZ; if ex then begin { Lösch den User } end; end; Gereon
Der XLate-Fehler besagt, daß eine Kommentarverkettung von Mail B auf Mail A beim Msg-Krunchen nicht umgemapped werden konnte, da die Mail A nicht in der Tabelle vorkommt.
Gruß Jörg
Von : Jörg Stattaus @ AC (Do, 22.10.92 16:08)
FM> 09:19 <XLate: 12446 fehlt in 2888[+]>
FM> 09:23 <XLate: 12510 fehlt in 4308[+]>
Bei Msg neu #2888 fehlt die Msg alt #12466, die eigentlich ein
Kommentar [+] auf 2888 sein sollte. Und das mit dem [+] ist komisch! Ab und
zu gibt's mal den Fall, daß eine [-]-Verkettung fehlt - keine Ahnung,
warum. Aber in dieser Richtung ist das recht selten. Hat eure MsgBase
irgendwas abbekommen?
Gruß Jörg
Von : Kai Henningsen @ MS (Di, 05.01.93 21:20) Hi Marcus,
MS> <XLate: 229 fehlt in 1270[-]>
MS>
MS> Sagt die mir irgendwas?
Interner Konsistenz-Check. This should not happen, passiert aber aus
bisher ungeklärten Gründen immer wieder :-( Wenn man viele davon
bekommt, sollte man aber prüfen, ob die Msgbase noch in Ordnung ist.
Was die Meldung aussagt: Eine Mitteilung, die nach dem Krunchen (oder war's
vorher? egal) die Nummer 1270 hat, hatte einen Verweis auf Nummer 229, und
zwar war's die "-"-Verkettung. 229 war aber bereits gelöscht,
daher hätte die Verkettung ebenfalls gelöscht sein sollen. MfG
Kai
>03:13 <XLate: 17068 fehlt in 41[*]
[*] steht für "letzter Kommentar auf diese Msg".
Copyright © by Christian Goßlar
Letzte Aktualisierung am 6. November 1997