Newsgroup: it.comp.os.linux.sys
Titolo: [REQ] automatizzare fetchmail

	Salve, vorrei fare in modo che quando stabilisco la mia connessione
dial-up venga lanciato fetchmail e, a scaricamento della posta terminato,
chiudere la connessione. Cosa devo fare? Dove posso trovare delle informazioni
sull'argomento?
	Grazie.
-- 
= = = = = = = = = = = = = = = = = = = = = = = = = = = = 
=  Il modo migliore di perdere una brutta abitudine   =
=      e' di sostituirla con una peggiore.            =
=                             (Jack Nicholson)        =
= = = = = = = = = = = = = = = = = = = = = = = = = = = = 
cam...@libero.it
icq number: #81761559

    kill `cat /var/run/ppp0.pid`
Ringrazio per queste informazioni, che potranno essere utili anche a me,
in quanto ho installato Linux da poco.
E se volessi completare lo script aggiungendo
        # scarico le news
        su news -c /usr/local/sbin/fetchnews
come dovrei fare per fare in modo che fetchmail e fetchnews vengano
eseguiti contemporaneamente (lo scaricamento sarebbe più veloce, o sbaglio?)
e la connessione venga chiusa solo quando entrambi hanno finito di scaricare?
Grazie a tutti per i preziosi consigli!
-- 
Ciao,
Pippo Peppo con Gnus su Linux

sull'argomento?
non e` difficile, si tratta solo di fare uno script che si collega,
scarica, e si stacca
puoi anche mettere i comandi direttamente in /etc/ppp/ip-up.local ma
pero` cosi` non puoi piu` fare una connessione normale senza che si
stacchi automaticamente
#!/bin/sh
function connect {
    pppd -detach connect "/usr/sbin/chat -v -f /etc/ppp/pppscript" &
    until
        ! [ "$(ifconfig | grep ppp0)" = "" ]
    do
        sleep 3
    done
}
connect &&
fetchmail
killall pppd
...il comando pppd per collegarsi non e` detto che ti funzioni identico,
devi avere i /etc/ppp/pppscript (che contiene i comandi da dare al
modem), il /etc/ppp/options (opzioni di pppd) e /etc/ppp/chap-secrets
(username e password). Vai a vedere nel file dei comandi nel mio sito,
ci sono anche questi...
E non scordarti che la connessione pppd va lanciata in background 
(quindi la `&' alla fine del comando) seno` lo script non prosegue mai
(il blocco `until' che c'e` dopo serve per farlo aspettare finche` la
connessione non e` pronta).
La '&' dopo connect invece e` doppia, anche qui non cannare altrimenti
si scazza tutto (al limite non metterne nessuna, ma se ne metti una sola
fetchmail verra` eseguito subito e` fallira` perche` l'interfaccia non
e` ancora attiva).
-- 
    Pardo 
 
pardo.cjb.net

Fatto 30 facciamo 31, ecco il file .fetchmailrc che deve stare nella home
dell'utente con cui vuoi scaricare la posta:
poll UTENTEDIPOSTA via MAILSERVER
 with proto POP3
       user UTENTEDIPOSTA there with password PASSWORD warnings 3600
Escluso POP3 sostituisci tutte le parole in maiuscolo con i tuoi valori.
Bye MadMax


 Dai che non e' difficile da mettere insieme... :)
Il problema non è la difficoltà, ma la mia incapacità :-)
Comunque piano piano e grazie a tutti gli amici di icol* sto imparando
anche ad usare linux.


 dial-up venga lanciato fetchmail e, a scaricamento della posta 
crei un file (chesso' lo chiami posta.sh) e lo rendi eseguibile
posta.sh attiva la connessione (vai.sh), spedisce posta, news e
riceve posta e news (sincr.sh), chiude la connessione (fine.sh)
quindi, per esempio in /etc/crontab puoi aggiungere la chiamata
posta.sh all'ora che vuoi e fa tutto lui, oppure a sincr.sh che
carica e scarica posta e news se sei gia' collegato e alla fine 
(fine.sh) chiude la connessione il tutto e' sotto GPL ma non mi
assumo responsabilita'.
-- /home/script/posta.sh
#!/bin/bash
/home/root/script/vai.sh && /home/root/script/sincr.sh
/home/root/script/fine.sh
-- /home/script/vai.sh 
#!/bin/bash
/home/script/firewall.sh        #in pratica deny all
/home/script/apcupsd stop       #ho problemi con apc ;)  
#attiva il collegamento
echo "** Attivo il collegamento"
wvdial &                        #uso wvdial per collegarmi
FATTO=0
CONTA=0
sleep 25                        #isdn e' un'altra cosa ;)
while [ $CONTA -lt 25 ]
do
 let CONTA=CONTA+1
 IPADDR=$(/sbin/ifconfig | /bin/grep P-t-P | /usr/bin/cut -c 21-35)
 echo "->"$IPADDR
 if [ -z $IPADDR ]
 then
  echo "*** "$CONTA" non attivo"
  sleep 1
 else
  echo "*** attivo"
  FATTO=1
  break
 fi
done
if [ $FATTO -eq 0 ]
then
  /home/script/fine.sh
  echo "collegamento interrotto"
  exit 1
else
  /home/script/ipchain.sh            #firewall
  echo "ipchain attivato"
  exit 0
fi
-- /home/script/sincr.sh
#!/bin/bash
# spedisce la posta
postfix flush
# scarica news
su news -c "/usr/sbin/fetchnews -vv" 
# scarica posta
su mauri -c "fetchmail" 
-- /home/script/fine.sh
#!/bin/sh
/home/script/firewall.sh                #torna a bloccare tutto
kill -INT `cat /var/run/ppp0.pid`       
/home/script/apcupsd restart            #riparte APC
tutte le ` che trovi si fanno con ALT+096
nebbia

 su news -c "fetchnews &"
Ci ho provato, ma ho un problema con il comando su.
Lo script si ferma e mi chiede la password. Per <nomeutente> posso
anche darla, e lo script prosegue, ma per news non ho nessuna password.
Ho provato con la password di root, ma non funziona.
*Come devo fare per evitare che su mi chieda la password?*
Ho provato cambiando i permessi del file in tutti i modi, ma non ci sono
riuscito.


 nella directory /etc/ppp/ip-up.d
È vero, se lo lancio da root funziona tutto perfettamente. :-)
Lo script non l'ho messo in ip-up, perchè ho intenzione di completarlo in
modo che mi lanci la connessione, scarichi mail e news, e chiuda la
connessione una volta terminato di scaricare. E ovviamente non sarebbe
una buona idea metterlo in ip-up perchè mi chiuderebbe ogni connessione
che lancio.
Ora mi domando se cambiando i permessi o il gruppo del file non ci sia
modo di lanciarlo come utente normale, senza che il comando su news mi
chieda una password (magari usando i bit suid, sgid o sticky, che anche
dopo la lettura di man chmod non ho ancora capito come funzionano).
Intanto ne approfitto per ringraziare tutti coloro che mi hanno
aiutato. Sto cominciando ad appasionarmi a Linux :-)


 Dai che non e' difficile da mettere insieme... :)
Ci sono riuscito! :-)
Incollo qui l'ultima parte del mio script, cosě se interessa a qualcuno
puň utilizzarlo:
# attendi completazione scaricamento
#
    until
	[ "$(ps aux|grep "fetchnews\|fetchmail"|grep -v "grep")" = "" ]
    do
	sleep 2
    done
#
# sconnetti
#
kill -INT `cat /var/run/ppp0.pid`
L'unico piccolo problema che ancora ho, č che una volta terminato lo
script devo premere Ctrl-C per ritornare al prompt di xterm. Ho provato
anche a mettere exit alla fine dello script, ma non serve a niente.
