Die automatische Erledigung von News und EMail ist unter Linux ziemlich leicht einzurichten.
Als Allererstes solle man eine /usr/lib/ppp/ppp-on
erstellen,
die die Verbindung zum ISP herstellt. Oft enthält diese Datei nur
folgendes:
/usr/sbin/pppd
Weitere Angaben stehen in /etc/ppp/options
:
connect "/usr/lib/ppp/chat -v -f /etc/ppp/chatscript"
crtscts
modem
defaultroute
asyncmap 00000000
user dirk
/dev/modem 38400
Um die Verbindung zu beenden, benutzt man die mitgelieferte Version
von /usr/lib/ppp/ppp-off
.
Hat man überprüft, daß diese zwei Skripte funktionieren, dann muß man
sich Skripte schreiben, die die verschiedenen Aufgaben erledigen. Das
Skript, das EMail holt, wurde schon beschrieben und es wird
angenommen, daß es als /home/dirk/pop
gespeichert ist.
Ein Skript für den Austausch von EMail kann dann als
/root/mail
so erstellt werden:
#! /bin/sh
#
# EMail - Austausch
# timeout von 10 Minuten:
TIMEOUT=600
DT=10
# sendmail anwerfen:
sendmail -q &
# Post holen:
su dirk -c /home/dirk/pop
# warten, bis sendmail fertig ist:
t=0
while ! mailq | grep -q "Mail queue is empty"; do
t=$[$t+$DT]
if [ $t -gt $TIMEOUT ] ; then
echo "sendmail -q timeout ($TIMEOUT).."
exit 1
fi
sleep $DT
done
exit 0
Das Skript zum Austausch von News kann als /usr/lib/news/news
abgelegt werden:
#!/bin/sh
#
# News - Austausch
# muss als Benutzer news gestartet werden
cd /usr/lib/news
#ausgehende Nachrichten sammeln (C News):
/usr/lib/newsbin/input/newsrun < /dev/null
#News austauschen:
/usr/lib/newsbin/newsx acme news.acme.net
#und die eingehenden Nachrichten intern uebergeben:
/usr/lib/newsbin/input/newsrun < /dev/null
Es fehlt noch ein Skript, daß die einzelnen Teile verbinden. Es kann
als /root/news+mail
gespeichert werden:
#!/bin/sh
#
# Austausch von News und EMail
# muss als Benutzer root gestartet werden
#
if ! /usr/lib/ppp/ppp-on; then
exit 1
fi
trap "/usr/lib/ppp/ppp-off" 1 2 3 15
#News und EMail austauschen:
/root/mail &
su news -c ~news/news
wait
#aufhaengen..
/usr/lib/ppp/ppp-off
#eingehende Nachrichten intern uebergeben (C News):
su news -c /usr/lib/newsbin/input/newsrun < /dev/null &
exit 0
Es ist ziemlich einfach, eine Erweiterung zum obigen Skript zu
erstellen, so daß nur dann eine Verbindung hergestellt wird, wenn es
ausgehende EMail und News gibt. Nennen wir es
/root/news+mail.cond
und beachten, daß der Name des
ausgehenden News-Spools angepaßt werden muß:
#!/bin/sh
#
# Austausch von News und Email, wenn ausgehende News oder EMail vorhanden
# (C News Spool)
if [ -s /var/spool/news/out.going/acme/togo ] ||
! ( mailq | grep -q "Mail queue is empty"); then
/root/news+mail
fi
Bleibt noch übrig, anzugeben, wann das alles passiert. Dazu führt man
als root den Befehl crontab -e
aus. Nehmen wir an, wir
wollen den Austausch von News und EMail morgens um 7 Uhr durchführen
und dann jede vierte Stunde, wenn es ausgehende EMail und News gibt:
00 7 * * * /root/news+mail
00 11,15,19,23 * * * /root/news+mail.cond
Man sollte sich versichern, daß alle Teile durchprobiert sind, bevor
man sie verbindet. Später kann man dann weitere Aufgaben hinzufügen,
wie das Stellen der Uhr (über ntpdate) und das automatische
Aktualisieren (spiegeln) von lokal geführten WWW- und FTP-Dateien beim
ISP (über make und ftp).
ALT: Wenn man es bevorzugt, kann man das Verfahren auch
umdrehen. Sobald eine PPP-Verbindung hergestellt wird, wird das Skript
/etc/ppp/ip-up
ausgeführt. Hier kann man alles
hineinschreiben, was man braucht, um den Austausch von EMail und News
durchzuführen. Weitere Details finden sich in man pppd
.
ALT: Es ist auch möglich, PPP-Verbindungen automatisch aufbauen zu lassen, sobald Daten über das Netz gehen. Dies ist in vieler Hinsicht eine elegantere Lösung, hängt aber sehr von einer guten Konfiguration ab, damit nicht zu viele (und damit teure) Verbindungen hergestellt werden. Weitere Informationen findet man in:
http://www.dna.lth.se/~erics/diald.html
Das Programm diald
ist hier erhältlich:
sunsite.unc.edu/pub/Linux/system/network/serial/diald-0.16.tar.gz
Am gleichen Ort findet man auch weitere Variationen zum Thema PPP-Verbindungen.