Echanger le courrier durant la connexion


Bien, vous avez enfin une liaison dial-up à la demande qui fonctionne. Il est dommage d'avoir le traitement du courrier électronique réalisé uniquement lors de l'établissement de la liaison. Il serait souhaitable de mettre à profit le temps passé à surfer pour contrôler si il n'y a pas quelque chose à faire de ce coté là, automatiquement bien sûr...

La mise en oeuvre est très simple: il suffit de régler ses crontabs de manière à lancer périodiquement un script qui détecte si la connexion est active et lance le script diald_up si c'est le cas. Comme diald_up lance fetchmail qui lui-même lance sendmail pour traiter la queue: le tour est joué !!!


 
Précédent Table des matières Suivant HomeP@ge

1 Le script if_is_up

Ce script recoit un seul argument: le nom de l'interface. Si l'interface est trouvée dans la table des interfaces il renvoie un code de sortie à 0 et à 1 dans le cas contraire. Comme l'interface ppp0 est mise et enlevée en fonction du besoin (driver en module ) cela fonctionne très bien. Le script en lui-même est réduit au plus simple (si quelqu'un a plus court je veux bien voir ;)  ). Je l'ai installé dans le répertoire /usr/local/bin:
#!/bin/sh
#
#
[ $# -ne 1 ] && { echo "usage: if_is_up interface" >&2; exit 1 }
/bin/netstat -i|/bin/grep -q "^$1"
exit $?
    


 
Précédent Table des matières Suivant HomeP@ge

2 Le réglage de la crontab

J'ai opté pour un cycle de dix minutes quelque que soient l'heure et le jour de l'année, ce qui est amplement suffisant pour mes besoins et est en corrélation avec mes talents d'écrivain :). Libre à vous de choisir une autre configuration. La crontab à modifier est celle de "root", utilisez pour cela la commande crontab -e en étant connecté sous "root". Pour l'exemple, voici le contenu de la mienne, obtenu avec crontab -l:
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.16536 installed on Sun Aug  9 17:18:11 1998)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
0-50/10 * * * * /usr/local/bin/if_is_up ppp0 && /usr/local/bin/diald_up
    
Retour au document

Cyril Guibourg

Last modified: Sat Nov 13 13:34:24 MET 1999