[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Modem, mails & co



Julien Gilles a écrit, mardi 16 janvier 2001, à 17:21 :
> 
> Salut, 

Bonsoir.

> Le contexte : Potato, connection par modem classique. Je récupère mes
> mails via un fetchmail lancé dans ip-up.d, les envois se font
> également via un script placé dans ce répertoire. Comment faire pour
> déconnecter automatiquement une fois que tout est fait (ie plus de
> mail à charger, plus de mail à emvoyer ?).

Mes scripts lancent des tâches en parallèle, pour diminuer les temps morts.

Le mécanisme modulaire de Debian exécute successivement plusieurs
scripts dans l'ordre alphabétique, donc on ne peut pas utiliser
le « wait » comme dans un script unique (m'enfin, je crois...).

J'ai donc dans /etc/ppp/ip-up.d/ :

0/ [ un script d'initialisation des ipchains ]

1/ la pose du verrou :
+----[ 00verrou ]
| #!/bin/sh
| # Crée le verrou des scripts asynchrones
| touch /var/lock/PPP..lock
`----

2/ des scripts lançant des tâches asynchrones, comme :

+----[ 30exim ]
| #!/bin/sh
| # Vide la queue d'exim
| if [ -x /usr/sbin/exim ]; then
| 	  ( ln -f /var/lock/PPP..lock /var/lock/PPP.exim.lock
| 	    /usr/sbin/exim -qqf &&
| 	    rm -f /var/lock/PPP.exim.lock
| 	    /etc/ppp/scripts/arret
| 	    date '+%X - Courrier expédié.' >> /var/log/ppp/tasks-today.log 2>&1
| 	  ) &
| fi
`----

...et quelques autres sur le même modèle :

 (
  ajout d'un lien dur sur le verrou ;
  tâche ;
  suppression de ce lien dur ;
  appel du script d'arrêt ;
  message.
 ) &

3/ et un script de test en dehors de ce répertoire :
+----[ /etc/ppp/scripts/arret ]
| #!/bin/sh
| # Compte le nombre de verrous restants
| [  $(( $(ls -l /var/lock/PPP..lock|cut -b11-15) )) -gt 1 ] && exit 0
| 
| # ...et s'il en reste au plus un,
| if [ -f /tmp/PPP_MANU ];then
| 	  # en mode manuel, on prévient,
| 	  /bin/date '+%X - On peut raccrocher.' >> /var/log/ppp/tasks-today.log
| else
| 	  # en mode automatique, on raccroche.
| 	  /usr/bin/poff
| 	  /bin/date '+%X - Arrêt automatique.' >> /var/log/ppp/tasks-today.log
| fi
`----

On peut si besoin rajouter un script de time-out dans
/etc/ppp/ip-up/, et « tail -f /var/log/ppp/tasks-today » permet
de suivre les opérations.

J'ai appelé ça ppp-radin© ;^) -- je suppose qu'il y a mieux,
mais « chez moi, ça marche »®.
-- 
Jacques L'helgoualc'h



Reply to: