Outils admin
 27/04/2007
 Christian CALECA 
Liste des cours

Accueil ] [ Daemontools et ucspi-tcp ] [ Qmail & co. ] [ Vpopmail ] [ Essais divers ] [ courier-imap ] [ POP3 ] [ outils admin ] [ Ezmlm-idx ] [ qmailadmin ] [ Filtrage des mails ] [ Livraison locale ] [ Conclusions ]


Quelques outils pour se simplifier la vie

Gestion des services pop3 et imap

Les services sous la responsabilité des daemontools sont assez gluants. La commande générique "svc" permet de les maîtriser.

Voici un script qui permet, en utilisant les diverses possibilités de "svc", de démarrer, d'arrêter, de redémarrer, de mettre en pause etc. les services pop3 et pop3-ssl supervisés par les daemontools. Il suffit de modifier les variables SVC et SVCSSL pour l'adapter aux services imap.

# description: the courier-pop3 or courier-imap server
# with daemon tools

PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
export PATH

SVC_DIR='/service'
SVC='courier-pop3'
SVCSSL='courier-pop3-ssl'

case "$1" in
start)
echo "Starting ${SVC}"
if svok ${SVC_DIR}/${SVC}; then
svc -u ${SVC_DIR}/${SVC}
else
echo ${SVC} service not running
fi
echo "Starting ${SVCSSL}"
if svok ${SVC_DIR}/${SVCSSL}; then
svc -u ${SVC_DIR}/${SVCSSL}
else
echo ${SVCSSL} service not running
fi
if [ -d /var/lock/subsys ]; then
touch /var/lock/subsys/vpopmail
fi
;;
stop)
echo "Stopping ${SVC}..."
svc -d ${SVC_DIR}/${SVC}
echo "Stopping ${SVCSSL}..."
svc -d ${SVC_DIR}/${SVCSSL}
if [ -f /var/lock/subsys/vpopmail ]; then
rm /var/lock/subsys/vpopmail
fi
;;
stat)
svstat ${SVC_DIR}/${SVC}
svstat ${SVC_DIR}/${SVC}/log
svstat ${SVC_DIR}/${SVCSSL}
svstat ${SVC_DIR}/${SVCSSL}/log
;;
pause)
echo "Pausing ${SVC}"
svc -p ${SVC_DIR}/${SVC}
echo "Pausing ${SVCSSL}"
svc -p ${SVC_DIR}/${SVCSSL}
;;
reload)
echo "Reloading ${SVC}"
svc -h ${SVC_DIR}/${SVC}
echo "Reloading ${SVCSSL}"
svc -h ${SVC_DIR}/${SVCSSL}
;;
cont)
echo "Continuing ${SVC}"
svc -c ${SVC_DIR}/${SVC}
echo "Continuing ${SVCSSL}"
svc -c ${SVC_DIR}/${SVCSSL}
;;
restart)
echo "Restarting ${SVC} ${SVCSSL} :"
echo "* Stopping ${SVC}."
svc -d ${SVC_DIR}/${SVC}
echo "* Stopping ${SVCSSL}:"
svc -d ${SVC_DIR}/${SVCSSL}
echo "* Starting ${SVC}."
svc -u ${SVC_DIR}/${SVC}
echo "* Starting ${SVCSSL}."
svc -u ${SVC_DIR}/${SVCSSL} ;;
help)
cat <<HELP
stop    -- stops ${SVC} ${SVCSSL}(connections refused)
start   -- starts ${SVC} ${SVCSSL} (connection accepted)
pause   -- temporarily stops ${SVC} ${SVCSSL}
cont    -- continues paused ${SVC} ${SVCSSL}
stat    -- displays status of ${SVC} ${SVCSSL}
restart -- stops and restarts ${SVC} ${SVCSSL}
reload  -- reload configuration of ${SVC} ${SVCSSL}
HELP
;;
*)
echo "Usage: $0 {start|stop|reload|restart|stat|pause|cont|help}"
exit 1
;;
esac

exit 0

Déchiffrer les logs de qmail-send

Jms propose un script perl : mtrack, qui permet de rendre la sortie de qmail-send plus lisible en groupant, message par message, la suite des actions.

Ce script, qui est plutôt un filtre, peut par exemple s'utiliser comme ceci :

cat /service/qmail-send/log/main/current | mtrack | tai64nlocal

Pour fixer les idées sur l'utilité de ce filtre, voici un exemple le log non filtré :

cat /service/qmail-send/log/main/current | tai64nlocal
2007-04-23 17:53:31.528957500 new msg 12585409
2007-04-23 17:53:31.528964500 info msg 12585409: bytes 824 from <postmaster@maison.mrs> qp 2277 uid 1002
2007-04-23 17:53:31.528969500 starting delivery 2: msg 12585409 to local maison.mrs-prof@maison.mrs
2007-04-23 17:53:31.528972500 status: local 1/10 remote 0/20
2007-04-23 17:53:31.539061500 delivery 2: success: did_0+0+1/
2007-04-23 17:53:31.539069500 status: local 0/10 remote 0/20
2007-04-23 17:53:31.539072500 end msg 12585409
2007-04-23 17:55:15.339476500 new msg 12585409
2007-04-23 17:55:15.339483500 info msg 12585409: bytes 936 from <prof@maison.mrs> qp 2285 uid 1002
2007-04-23 17:55:15.339487500 starting delivery 3: msg 12585409 to local maison.mrs-postmaster@maison.mrs
2007-04-23 17:55:15.339491500 status: local 1/10 remote 0/20
2007-04-23 17:55:15.339494500 delivery 3: success: did_0+0+1/
2007-04-23 17:55:15.339496500 status: local 0/10 remote 0/20
2007-04-23 17:55:15.339499500 end msg 12585409
2007-04-23 19:45:51.047440500 alert: oh no! lost spawn connection! dying...
2007-04-23 19:45:51.047446500 alert: oh no! lost spawn connection! dying...
2007-04-24 09:39:26.501605500 status: local 0/10 remote 0/20
2007-04-24 10:37:53.571989500 new msg 12585409
2007-04-24 10:37:53.571997500 info msg 12585409: bytes 930 from <prof@maison.mrs> qp 2267 uid 1002
2007-04-24 10:37:53.572001500 starting delivery 1: msg 12585409 to local maison.mrs-postmaster@maison.mrs
2007-04-24 10:37:53.572005500 status: local 1/10 remote 0/20
2007-04-24 10:37:53.654748500 delivery 1: success: did_0+0+1/
2007-04-24 10:37:53.654756500 status: local 0/10 remote 0/20
2007-04-24 10:37:53.654759500 end msg 12585409
2007-04-24 12:13:16.959042500 status: local 0/10 remote 0/20

Puis filtré :

cat /service/qmail-send/log/main/current | mtrack | tai64nlocal
2007-04-23 17:53:31.528957500 new msg 12585409
2007-04-23 17:53:31.528964500 info msg 12585409: bytes 824 from <postmaster@maison.mrs> qp 2277 uid 1002
2007-04-23 17:53:31.528969500 starting delivery 2: msg 12585409 to local maison.mrs-prof@maison.mrs
2007-04-23 17:53:31.539061500 delivery 2: success: did_0+0+1/
2007-04-23 17:53:31.539072500 end msg 12585409

2007-04-23 17:55:15.339476500 new msg 12585409
2007-04-23 17:55:15.339483500 info msg 12585409: bytes 936 from <prof@maison.mrs> qp 2285 uid 1002
2007-04-23 17:55:15.339487500 starting delivery 3: msg 12585409 to local maison.mrs-postmaster@maison.mrs
2007-04-23 17:55:15.339494500 delivery 3: success: did_0+0+1/
2007-04-23 17:55:15.339499500 end msg 12585409

2007-04-24 10:37:53.571989500 new msg 12585409
2007-04-24 10:37:53.571997500 info msg 12585409: bytes 930 from <prof@maison.mrs> qp 2267 uid 1002
2007-04-24 10:37:53.572001500 starting delivery 1: msg 12585409 to local maison.mrs-postmaster@maison.mrs
2007-04-24 10:37:53.654748500 delivery 1: success: did_0+0+1/
2007-04-24 10:37:53.654759500 end msg 12585409

Et d'autres choses encore...

Jms propose bien d'autres scripts. Je vous laisse fouiller.


Précédente ] [ Accueil ] [ Suivante ]