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


Répondre à