Inhalt

6. Automatisierung

Die automatische Erledigung von News und E-Mail ist unter Linux ziemlich leicht einzurichten.

Als Allererstes sollte man die Datei /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 der Datei /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 E-Mail holt, wurde schon beschrieben und es wird angenommen, daß es als /home/dirk/pop gespeichert ist.

Ein Skript für den Austausch von E-Mail kann dann als Datei /root/mail so aussehen:

#! /bin/sh
#
# E-Mail - 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 Datei /usr/lib/news/news abgelegt werden:

#!/bin/sh
#
# News - Austausch
# muß 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 übergeben:
/usr/lib/newsbin/input/newsrun < /dev/null
Es fehlt noch ein Skript, daß die einzelnen Teile verbinden. Es kann als Datei /root/news+mail gespeichert werden:
#!/bin/sh
#
# Austausch von News und E-Mail
# muß 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 E-Mail austauschen:
/root/mail &
su news -c ~news/news
wait

# aufhängen..
/usr/lib/ppp/ppp-off

# eingehende Nachrichten intern übergeben (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 E-Mail 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 
# E-Mail vorhanden sind.
# (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 E-Mail morgens um 7 Uhr durchführen und dann jede vierte Stunde, wenn es ausgehende E-Mail 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 von lokal geführten WWW- und FTP-Dateien beim ISP.

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 E-Mail und News durchzuführen. Weitere Details finden sich in man pppd.

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:

metalab.unc.edu:/pub/Linux/system/network/serial/

Am gleichen Ort findet man auch weitere Variationen zum Thema PPP-Verbindungen.


Inhalt