Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 430

howto-html-it-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>ISP-Hookup-HOWTO: Come faccio ad automatizzare la procedura di connessione?</TITLE>
 <LINK HREF="ISP-Hookup-HOWTO-7.html" REL=next>
 <LINK HREF="ISP-Hookup-HOWTO-5.html" REL=previous>
 <LINK HREF="ISP-Hookup-HOWTO.html#toc6" REL=contents>
</HEAD>
<BODY>
<A HREF="ISP-Hookup-HOWTO-7.html">Avanti</A>
<A HREF="ISP-Hookup-HOWTO-5.html">Indietro</A>
<A HREF="ISP-Hookup-HOWTO.html#toc6">Indice</A>
<HR>
<H2><A NAME="s6">6. Come faccio ad automatizzare la procedura di connessione?</A></H2>

<P>La gestione automatica della posta e delle news &egrave; abbastanza facile
sotto Linux.
<P>Come primo e principale passo, si deve creare uno script
<!--
/usr/lib/ppp/ppp-on
-->
 /usr/lib/ppp/ppp-on per
iniziare il collegamento con l'Internet Provider. Spesso, basta una
riga con il seguente comando:
<P>
<BLOCKQUOTE><CODE>
<PRE>
/usr/sbin/pppd
</PRE>
</CODE></BLOCKQUOTE>
<P>
<!--
pppd
-->
 Altri particolari vengono definiti nel file
<!--
/etc/ppp/options
-->
 /etc/ppp/options:
<P>
<BLOCKQUOTE><CODE>
<PRE>
connect "/usr/lib/ppp/chat -v -f /etc/ppp/chatscript"
crtscts
modem
defaultroute
asyncmap 00000000
user dirk
/dev/modem 38400
</PRE>
</CODE></BLOCKQUOTE>
<P>Per chiudere il collegamento, usate la versione predefinita di
<!--
/usr/lib/ppp/ppp-off
-->
 /usr/lib/ppp/ppp-off.
<P>Dopo aver verificato il funzionamento di questi script, si devono
scrivere altri script che eseguiranno le diverse operazioni. Lo script
per prelevare la posta &egrave; gi&agrave; stato descritto precedentemente, ed
assumeremo che si trova nel file /home/dirk/pop.
<P>Uno script per lo scambio della posta pu&ograve; essere messo in
/root/mail:
<P>
<BLOCKQUOTE><CODE>
<PRE>
#! /bin/sh
#
# scambia posta elettronica
# 10 minuti di timeout:
TIMEOUT=600
DT=10

# lancia sendmail:
sendmail -q &amp;

# preleva la posta:
su dirk -c /home/dirk/pop

# attendi la fine di sendmail:
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
</PRE>
</CODE></BLOCKQUOTE>
<P>Lo script per lo scambio delle news pu&ograve; essere messo nel file
/usr/lib/news/news:
<P>
<BLOCKQUOTE><CODE>
<PRE>
#!/bin/sh
#
# scambio delle news
# viene eseguita come utente news:
cd /usr/lib/news

#aggiorna il batch di uscita (C News):
/usr/lib/newsbin/input/newsrun &lt; /dev/null

#scambia le news:
/usr/lib/newsbin/newsx acme news.acme.xz

#e svuota il batch in ingresso:
/usr/lib/newsbin/input/newsrun &lt; /dev/null
</PRE>
</CODE></BLOCKQUOTE>
<P>Adesso manca soltanto uno script per mettere insieme i diversi pezzi,
e che pu&ograve; essere messo nel file /root/news+mail:
<P>
<BLOCKQUOTE><CODE>
<PRE>
#!/bin/sh
#
# scambio della posta e delle news
# viene eseguito come utente root
#
if ! /usr/lib/ppp/ppp-on; then
    exit 1
fi
trap "/usr/lib/ppp/ppp-off" 1 2 3 15

#scambio della posta e news:
/root/mail &amp;
su news -c ~news/news
wait

#chiude il collegamento
/usr/lib/ppp/ppp-off

#aggiorna il batch in ingresso (C News):
su news -c /usr/lib/newsbin/input/newsrun &lt; /dev/null &amp;

exit 0
</PRE>
</CODE></BLOCKQUOTE>
<P>&Egrave; abbastanza semplice modificare lo script precedente per attivare la
connessione solo quando c'&egrave; della posta o delle news da spedire.
Supponiamo di chiamarlo
<!--
/root/news+mail.cond
-->
 /root/news+mail.cond, e
teniamo presente che il nome dello spool delle news in uscita deve
essere aggiornato di conseguenza:
<P>
<BLOCKQUOTE><CODE>
<PRE>
#!/bin/sh
#
# scambio della posta e delle news, solo se ci sono messaggi in uscita
# (C News spool)
if [ -s /var/spool/news/out.going/acme/togo ] ||
    ! ( mailq | grep -q "Mail queue is empty"); then
     /root/news+mail
fi
</PRE>
</CODE></BLOCKQUOTE>
<P>L'unica cosa che manca &egrave; specificare quando dovrebbe accadere tutto
ci&ograve;. Questo viene fatto usando il comando <CODE>crontab -e</CODE>
<!--
crontab
-->
 come <CODE>root</CODE>.  Assumendo che intendiamo
effettuare sempre lo scambio della posta e delle news alle 07:00 del
mattino, e successivamente ogni 4 ore ma solo se ci sono messaggi da
spedire
<P>
<BLOCKQUOTE><CODE>
<PRE>
00 7            * * *   /root/news+mail
00 11,15,19,23  * * *   /root/news+mail.cond
</PRE>
</CODE></BLOCKQUOTE>
<P>Verificate separatamente il corretto funzionamento di ogni componente
prima di collegarli insieme. Successivamente potreste aggiungere molte
altre operazioni, come per esempio sincronizzare la data e ora (usando
<!--
ntpdate
-->
 ntpdate), l'aggiornamento automatico
(mirroring) di file WWW e FTP gestiti localmente verso il vostro
Internet Provider (usando make e ftp).
<P><B>ALTERNATIVA:</B> A seconda delle vostre preferenze, potete
impostare le procedure al contrario. Ogni volta che la connessione PPP
viene attivata, verr&agrave; eseguito anche lo script
<!--
/etc/ppp/ip-up
-->
 /etc/ppp/ip-up. E potete
aggiungere in questo script qualunque incantesimo sia necessario per
effettuare lo scambio della posta e delle news. Usate <CODE>man
pppd</CODE> per ulteriori dettagli.
<P><B>ALTERNATIVA:</B> &Egrave; anche possibile attivare automaticamente il
collegamento PPP ogni volta che viene rilevato traffico di
rete. Questa &egrave; in molti aspetti la soluzione pi&ugrave; elegante, ma dipende
molto di una buona configurazione onde evitare frequenti (e costosi)
collegamenti.  Altre informazioni possono essere trovate a
<A HREF="http://www.dna.lth.se/~erics/diald.html">http://www.dna.lth.se/~erics/diald.html</A>.
<P>L'utility <CODE>diald</CODE> &egrave; disponibile da
<A HREF="ftp://sunsite.unc.edu/pub/Linux/system/network/serial/diald-0.16.tar.gz">ftp://sunsite.unc.edu/pub/Linux/system/network/serial/diald-0.16.tar.gz</A>.
<P>In questo sito potete anche trovare altre variazioni sul tema dei
collegamenti PPP.
<P>
<HR>
<A HREF="ISP-Hookup-HOWTO-7.html">Avanti</A>
<A HREF="ISP-Hookup-HOWTO-5.html">Indietro</A>
<A HREF="ISP-Hookup-HOWTO.html#toc6">Indice</A>
</BODY>
</HTML>