Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

'uusavemoney' fuer SCO XENIX 386 (war Re: pollall fuer ISC)

2 views
Skip to first unread message

Peter Funk

unread,
Nov 14, 1991, 4:27:53 PM11/14/91
to
In <1991Nov12.1...@tpki.toppoint.de> gab
kr...@tpki.toppoint.de (Kristian Koehntopp) in 'sub.os.unix'
ein interessantes Shell-Skript zum besten:
> # @(#) pollall Pollt zu gegebener Zeit alle angegebenen Sites.
> # Kann Vorausprogramme starten.
> # Kann Anwahlversuche wiederholen.
> #
> # Muss stuendlich oder so aufgerufen werden.
[...]
> # Warning! This script contains heavy shell & awk magick!
[...]
> Verbesserungsvorschlaege willkommen.

Hier kommt kein Verbesserungsvorschlag, aber etwas Artverwandtes
(allerdings fuer SCO XENIX 386 2.3.x) :

Die "out-of-the-box"-UUCP-Konfiguration des SCO XENIX 386 sieht vor,
dass der 'uudemon.hour' halbstuendlich aufgerufen wird. (siehe crontab.eg)
Dies hat zwei Nachteile:
1. Wenn Auftraege im Spool stehen, wird entsprechend dem in
/usr/lib/uucp/Systems festgelegten Zeit-Fenster immer ein Poll
ausgeloest (Auch wenn gerade vor einer halben Stunde gepollt wurde)
Dies kann unter Umstaenden recht teuer werden, da im Extrem-Fall
('Any') 48 Verbindungen pro Tag aufgebaut werden.
2. Wenn das in /usr/lib/uucp/Systems festgelegte Zeitfenster sehr eng
ist (z.B. 'Any0020-0050'), kann es passieren, dass der Poll voellig
fehlschlaegt, da nur 2 Waehlversuche gemacht werden.

Als Abhilfe kann man folgende minimale Veraenderung vornehmen :
1. Das unten folgende KURZE Skript als /usr/lib/uucp/uusavemoney ablegen.
(mit 'chown uucp uusave*; chmod 760 uusave*' versteht sich)
2. Den uudemon.hour entgegen dem in /usr/lib/uucp/crontab.eg
von SCO gemachten Vorschlag oefter aufrufen:
1,6,11,16,21,26,31,36,41,46,51,56 * * * * /bin/su uucp -c "/usr/lib/uucp/uudemon.hour" > /dev/null

3. Die Zeile mit uusched in 'uudemon.hour' wie folgt abwandeln :
( /usr/lib/uucp/uusavemoney ; /usr/lib/uucp/uusched ; \
/usr/lib/uucp/uusavemoney ) &

Nun das Shell-Skript :
---- fetz ---- ratz ----
: use the real sh
# @(#) uusavemoney 1.0 90/09/16
# Public Domain (von Peter Funk)
cd /usr/spool/uucp/.Status
for i in * ; do
[ "$i" = "*" ] && exit 0
nstat=`awk < $i '
{ if (($1 == 0) && ($4 == 0)) {
$1 = 6; $4 = 21600; # Sekunden = 6 Stunden = DAILY / 4
print
}
}'`
if [ "$nstat" ]
then echo "$nstat" > $i
fi
done
---- fetz ---- ratz ----

Wie es funktioniert :
Es gibt im UUCP bereits einen Mechanismus, der dafuer sorgt, dass bei
fehlgeschlagenen Login-Versuchen nicht beliebig haeufig neue
Anwahlversuche gemacht werden. Dies geschieht ueber eine "Retry-Time",
die fuer jeden Nachbar-Rechner gesondert in einer Datei in
'/usr/spool/uucp/.Status' gefuehrt wird. Es liegt also nahe, diesen
Mechanismus auch fuer das Verhindern von "Crash-Mail" ;-) nutzbar zu
machen: In den Status-Dateien steht in der 1.Spalte ein Status-Flag
und in der 4.Spalte die Retry-Time in Sekunden. Wenn Status-Flag
und Retry-Time '0' sind, war der letzte Verbindungsaufbau erfolgreich
und dann kann die Retry-Time auf einen vorbestimmten Wert gesetzt
werden, damit der naechste Anruf fruehestens in N Stunden erfolgt.

Dieses Verfahren setze ich hier auf artcom0 seit ueber einem
Jahr ein und es hat sich als sehr zuverlaessig bewaehrt. Es hat
gegenueber fest abgesprochenen Pollzeiten folgende Vorteile:
+ Ausfaelle treten eigentlich nur auf, wenn der Nachbar wirklich
laengere Zeit 'down' ist.
+ Die Telefonkosten halten sich trotzdem in einem moderaten Rahmen.
+ Die maximale Verweildauer von Mails betraegt bei einem 'Any'-Link
6 Stunden.
+ Laestiges Abstimmen von Pollzeiten mit diversen UUCP-Nachbarn
entfaellt.
+ Wenn beide Seiten ihren Link aktiv betreiben, hat der Link geringe
(bis gar keine) Leerlaufkosten : Es wird nur gepollt, wenn was anliegt,
dann aber auch so bald wie moeglich.
+ Nachbarn, die feste Pollzeiten wuenschen, lassen sich durch
entsprechende Zeit-Fenster in /usr/lib/uucp/Systems auch zufrieden
stellen.
+ "Dial-In"-Zeit-Fenster lassen sich durch entsprechende Luecken
in der 'crontab'-Zeile fuer 'uudemon.hour' realisieren.
+ uustat -m liefert ein "gewohntes" Bild :
artcom4 6C 11/14-19:46 SUCCESSFUL Retry: 3:21
lmsys 11/13-00:08 SUCCESSFUL
malihh 2C 11/14-22:15 WRONG TIME TO CALL
mcshh 3C 11/14-18:51 SUCCESSFUL Retry: 2:26
nicedel 10C 11/14-18:03 SUCCESSFUL Retry: 1:38
olis 11/14-22:14 SUCCESSFUL Retry: 5:50
rnihd 11/13-00:36 SUCCESSFUL
smurf 1C 11/14-21:47 SUCCESSFUL Retry: 5:22
uniol 46C 11/14-22:15 WRONG TIME TO CALL

In der Hoffnung niemand gelangweilt zu haben und sich wieder
seiner richtigen Arbeit zuwendend gruesst, Peter
-=-=-
Peter Funk \\ ArtCom GmbH, Schwachhauser Heerstr. 78, D-2800 Bremen 1
Work at home: Oldenburger Str.86, D-2875 Ganderkesee 1/phone : top secret

0 new messages