Sympa:makelist.sh

De OpenWikiBSD.

Sommaire

Usage

Permet de créer, en ligne de commande, la configuration complète d'une liste sur Sympa. Les utilisateurs sont obtenus depuis les groupes éponymes de l'annuaire du se3.

L'attribut des utilisateurs est PostOfficeBox.


Prérequis

Script

#!/bin/bash

###Creation de liste automatique sur un annuaire LDAP au schema SambaEdu3
## www.sambaedu.org
##Polyp@sambaedu.org
## 29/01/2006
## Maj Sympa5.2.3/Etch 30/09/08
## Script en GPL

# Usage makelist.sh Nom_de_la_liste [Taille(Ko):Creation d'un espace partage de Taille ko/ vide: Pas d'espace partage  ]
BASEDN="Le Base DN de votre se3 préféré"
IPLDAP=L'@IP de votre serveur se3
PASSLDAP=Le mdpasse de votre administrateur se3
ROB=Le FQDN de votre robot de listes
LM="Le mail du listmaster"

# On fait une recherche LDAP. Si "Matiere_$1" est un cn valide contenant des memberUid, on ajoute Matiere_ devant.
MATOUPAS=`ldapsearch -h $IPLDAP -x  -b cn=Matiere_$1,ou=Groups,$BASEDN  -D cn=admin,$BASEDN -w $PASSLDAP |grep memberUid`

if [ "$MATOUPAS" != "" ]
then PREFIX="matiere_"
fi

# On met tout en minuscules
LST=`/usr/script/traduc.pl $1`
LST=$PREFIX$LST # Ajout Matiere devant si ...c'en est une
LCK=/var/lock/$LST

ALIAS="/etc/mail/sympa.aliases"
DAT=`date '+%d %b %Y'`
HEURE=`date '+%H:%M:%S'`
TEMPSEPOCH=`date '+%s'`
REP="/var/lib/sympa/expl/$LST"
CONFBASE="/usr/script/config"
CONFIG="/var/lib/sympa/expl/$LST/config"
TITR="Creation de la liste $1 correctement effectuee"

#Test Equipe ou Matiere
# Passer un coup de TransformMatiere.sh $MAT aprÃs
# Test Lock existe deja:

if [ -e $LCK ]
then
echo "Fichier Lock trouve : Liste existante. On arrete"
exit
fi

# On vérifie que les paramètres existent pour éviter les .....effets de bord si la liste n'est pas donnée en argument....Merci Tursan ;-)
if [ -n "$LST" ] 
then

#Création des aliases Sympa#
GRP=`cat $ALIAS | grep $LST | grep -v "Supprime"`
if [ "$GRP" == "" ]
then
echo "Création des aliases Sypa"
# ATTENTION, on interdit inscription et desinscription
echo "#------------------------------ $LST: list alias created $DAT" >> $ALIAS
echo "$LST: \"| /usr/lib/sympa/bin/queue $LST@$ROB\"" >> $ALIAS
echo "$LST-request: \"| /usr/lib/sympa/bin/queue $LST-request@$ROB\"" >> $ALIAS
echo "$LST-editor: \"| /usr/lib/sympa/bin/queue $LST-editor@$ROB\"" >> $ALIAS
echo "#$LST-subscribe: \"| /usr/lib/sympa/bin/queue $LST-subscribe@$ROB\"" >> $ALIAS
echo "#$LST-unsubscribe: \"| /usr/lib/sympa/bin/queue $LST-unsubscribe@$ROB\"" >> $ALIAS
echo "$LST-owner: \"| /usr/lib/sympa/bin/bouncequeue $LST@$ROB\"" >> $ALIAS
newaliases
else
echo "Les aliases de messagerie existent deja ."
exit
fi

##Création du répertoire de liste et des deux fichiers de base (info et config)
echo "Création d repertoire de liste et des deux fichiers de base (info et config)"
mkdir $REP
chmod -R 750 $REP
echo "Liste privée des enseignants "> $REP/info
cp $CONFBASE $CONFIG
chmod 640 $REP/info
chmod 640 $REP/config

##Configuration de la liste
echo "Configuration de la liste"
perl -pi -e "s/DAT/$DAT/g" $CONFIG
perl -pi -e "s/HEURE/$HEURE/g" $CONFIG
perl -pi -e "s/EPOCH/$TEMPSEPOCH/g" $CONFIG
perl -pi -e "s/GRPE/$LST/g" $CONFIG


## Création d'un espace partagé ?
echo "Création d'un espace partagé ?"
if [ -n "$2" ] 
then	
mkdir $REP/shared
perl -pi -e "s/QUOTA/quota $2/" $CONFIG
else
perl -pi -e 's/QUOTA//' $CONFIG
fi 
chown -R sympa.sympa $REP

# Synchro immédiate des users sur l'annuaire
/usr/lib/sympa/bin/sympa.pl --sync_include $LST

# Creation d'un lock definitif
touch $LCK


# Confirmation par mail
echo " Envoi d'un mail de confirmation au listHamster"
ALIASESMESS=`cat /etc/mail/sympa.aliases|grep $LST`
CORPS=`ls /var/lib/sympa/expl/$LST`
CORPS=$CORPS."\n".$ALIASESMESS
echo "Creation de la liste $1 effectuee\n$CORPS" |mail -s "$TITR" $LM

fi


Sortie

/usr/script/makelist.sh administration 100000

Création des aliases Sympa
Création du repertoire de liste et des deux fichiers de base (info et config)
Configuration de la liste
Création d'un espace partagé ?
Members of list administration@listes.lyceenobel.org have been successfully update.
 Envoi d'un mail de confirmation au listHamster

Outils personnels