Automatische afhandeling van news en email is onder Linux heel makkelijk te implementeren.
Als eerste en voornaamste zou men een /usr/lib/ppp/ppp-on aan moeten maken waarmee de ISP-verbinding op gang wordt gebracht. Vaak zal er gewoon het volgende instaan:
/usr/sbin/pppd
Verdere specificatie zal worden uitgevoerd in /etc/ppp/options:
connect "/usr/lib/ppp/chat -v -f /etc/ppp/chatscript"
crtscts
modem
defaultroute
asyncmap 00000000
user dirk
/dev/modem 38400
Gebruik de geleverde versie /usr/lib/ppp/ppp-off. om de verbinding te beëindigen.
Na de functionaliteit van deze twee scripts te hebben geschreven, moet men vervolgens scripts schrijven die de diverse taken uitvoeren. Het script om email te verzamelen is reeds eerder beschreven, en we zullen er hierbij van uitgaan dat het is geplaatst in /home/dirk/pop.
Een script om email uit te wisselen kan dan worden geproduceerd in /root/mail:
#! /bin/sh
#
# exchange mail
# 10 minutes timeout:
TIMEOUT=600
DT=10
# kick sendmail:
sendmail -q &
# retrieve mail:
su dirk -c /home/dirk/pop
# wacht totdat sendmail eindigt:
t=0
while ! mailq | grep -q "Mail queue is leeg"; do
t=$[$t+$DT]
if [ $t -gt $TIMEOUT ] ; then
echo "sendmail -q timeout ($TIMEOUT).."
exit 1
fi
sleep $DT
done
exit 0
Het script om news uit te wisselen, kan worden geplaatst in /usr/lib/news/news:
#!/bin/sh
#
# wissel nieuws uit
# moet worden gedraaid als news:
cd /usr/lib/news
#update de uitgaande batch (C News):
/usr/lib/newsbin/input/newsrun < /dev/null
# exchange news:
/usr/lib/newsbin/newsx acme news.acme.xz
# en leeg de inkomende batch:
/usr/lib/newsbin/input/newsrun < /dev/null
Een script om de diverse stukjes en beetjes te verbinden blijft, en kan
in /root/news+mail worden geplaatst:
#!/bin/sh
#
# wissel nieuws en email uit
# moet als root worden gedraaid
#
if ! /usr/lib/ppp/ppp-on; then
exit 1
fi
trap "/usr/lib/ppp/ppp-off" 1 2 3 15
#exchange news+mail:
/root/mail &
su news -c ~news/news
wait
#disconnect..
/usr/lib/ppp/ppp-off
#update de inkomende batch (C News):
su news -c /usr/lib/newsbin/input/newsrun < /dev/null &
exit 0
Het is heel eenvoudig op het bovenstaande een uitbreiding te maken, zodanig dat er alleen een verbinding tot stand wordt gebracht als er uitgaande email en news aanwezig is. Laten we het /root/news+mail.cond noemen, en in gedachten houden dat de naam van de uitgaande news-spool als volgt moet worden bijgewerkt:
#!/bin/sh
#
# wissel nieuws en email uit alleen als er uitgaande news of mail-berichten zijn
# (C News spool)
if [ -s /var/spool/news/out.going/acme/togo ] ||
! ( mailq | grep -q "Mail queue is empty"); then
/root/news+mail
fi
Het enige wat er nu overblijft is aan te geven wanneer dit allemaal
gaat gebeuren. Dit wordt gedaan door als root gebruik te maken van het commando
crontab -e
. Laten we ervan uitgaan dat we altijd om 07:00
in de ochtend news en mail uit willen wisselen, en dat er daarna
ieder 4e uur uitgaande email en news zal zijn:
00 7 * * * /root/news+mail
00 11,15,19,23 * * * /root/news+mail.cond
Verzeker je ervan dat iedere component goed is getest voor je ze aan elkaar koppelt. Je kunt later verscheidene andere taken toevoegen, zoals een aanpassing van de tijd of de dag (met gebruik van ntpdate), en automatische update (mirroring) van lokaal beheerde WWW en FTP bestanden aan de ISP (met behulp van make en ftp).
ALT: Afhankelijk van iemands voorkeuren, is het ook mogelijk
om het proces om te keren. Iedere keer dat er een PPP-link wordt
geïnitieerd, zal het script
/etc/ppp/ip-up worden gestart. Hier kan men, datgene wat er
voor nodig is om email of news uit te wisselen, toevoegen.
Zie man pppd
voor verdere details.
ALT: Het is ook mogelijk om PPP automatisch op te starten als er netwerkverkeer wordt gedetecteerd. Dit is op veel manieren de elegantere oplossing, maar het is nogal afhankelijk van een goede configuratie om te voorkomen dat er frequente (en kostbare) verbindingen tot stand worden gebracht. Meer informatie is te vinden bij:
http://www.dna.lth.se/~erics/diald.html
Het diald
utility is beschikbaar vanaf:
ftp://sunsite.unc.edu/pub/Linux/system/network/serial/diald-0.16.tar.gz
Op dezelfde lokatie vindt men ook nog andere variaties op het thema PPP verbindingen.