Script shell (bash) : récupération des comptes expirés Postfix dans /etc/shadow
Testé pour une installation de Postfix de base sur une RedHat et une Fedora.
si un compte email est expiré, le serveur postfix reçoit encore des emails (ex ddupont, oblabla...) tant qu'on a pas supprimé le compte ménage, il serait intéressant d'etre il faudrait etre prévenu de l'expiration des comptes (via un script qui
rechercherait dans /etc/shadow ... les comptes postfix expirés).
La réponse renvoyée dans le fichier /root/final-13236-postfix-expires est du type :
#!/bin/bash
#
# script de recuperation des comptes emails postfix expires
# cree un fichier /root/comptes-expires-$nbjtoday avec les logins et la date d expiration
# des comptes postfix (date exp = colonne 8 de /etc/shadow test sur une installation postfix pour redhat)
#
# le fichier de resultat est /root/final-XXXXX-postfix-expires
#
#
# la date du jour / le 08 mar 2006
datejour=$(date)
# le nbre de secondes depuis 01/01/1970
nbstoday=$(date +%s)
# le nbre de j depuis 01/01/1970 = nb secondes / nb de secondes par jour (86400)
nbjtoday=$(($nbstoday / 86400))
# recup de /etc/shadow champs user et nbre de jours apres 01/01/1970
# pour expiration du compte - colonnes 1 et 8
cut -d ":" -f 1,8 /etc/shadow > /root/temp-$nbjtoday-shadow18
# 12814 jours : 2005 janv 31
# la boucle de 12813 jours a aujourd hui
LIMITE=$nbjtoday
for ((a=12813; a < LIMITE ; a++))
do
grep -e $a /root/temp-$nbjtoday-shadow18 >> /root/temp-$nbjtoday-comptes-expires
done
# recuperation du nombre de jours
cut -d ":" -f 2 /root/temp-$nbjtoday-comptes-expires >> /root/temp-$nbjtoday-comptes-expires-cut2
# ecriture de la date de facon intelligible
for i in $( less /root/temp-$nbjtoday-comptes-expires-cut2 );
do
date --date "Jan 1, 1970 00:00:00 $i days" >> /root/temp-$nbjtoday-comptes-expires-date
done
# aggregation dans un seul fichier
paste /root/temp-$nbjtoday-comptes-expires /root/temp-$nbjtoday-comptes-expires-date >> /root/final-$nbjtoday-postfix-expires
# on ecrit la date du jour de creation du fichier de resultats a la fin
echo "extrait le $datejour, depuis 01-01-1970 il y a eu $nbjtoday jours" >> /root/final-$nbjtoday-postfix-expires
# on efface ensuite les fichiers temporaires
rm -f /root/temp-$nbjtoday-*
chmod a+x script-comptes-postfix-expires.sh
La réponse renvoyée dans le fichier /root/final-13236-postfix-expires est du type :
stoto:13056 ven sep 30 00:00:00 CEST 2005
fbar:13066 lun oct 10 00:00:00 CEST 2005
etartemp:13080 lun oct 24 00:00:00 CEST 2005
stratup:13088 mar nov 1 00:00:00 CET 2005
oplipli:13117 mer nov 30 00:00:00 CET 2005
extrait le mer mar 29 10:07:14 CEST 2006 ,depuis 01-01-1970 il y a eu 13236 jours
Source de la documentation (en GFDL) sur Pykota
Source (s) de l'article sur la gestion de parc avec Zope (tar.gz)