[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 #!/bin/bash 2 # 3 ##### Script de génération d'un CSV des membres d'un groupe ##### 4 # 5 # Auteur: Stéphane Boireau (A.S. - Relais de Bernay/Pont-Audemer (27)) 6 # 7 ## $Id: export_csv_groupe.sh 6654 2011-11-27 16:35:54Z dbo $ ## 8 # 9 # /usr/share/se3/sbin/export_csv_groupe.sh 10 # Dernière modification: 23/06/2007 11 12 if [ "$1" = "--help" -o "$1" = "-h" -o -z "$1" ]; then 13 echo "Script destiné à effectuer un export CSV des membres d'un groupe" 14 echo "en fournissant les champs suivants:" 15 echo " Login;Nom complet;Nom;Prenom;Naissance;Sexe;Email" 16 echo "" 17 echo "Usage : Passer le nom du groupe en paramètre \$1" 18 echo " La chaine __CLASSES__ est aussi acceptée" 19 echo " et génère un CSV par classe." 20 echo " Les fichiers sont générés dans un sous-dossier" 21 echo " du Home de l'utilisateur admin." 22 exit 23 fi 24 25 if [ ! -e "/home/admin" ]; then 26 echo "ERREUR:" 27 echo " Le compte admin ne s'est jamais connecté." 28 echo " Son dossier personnel n'existe pas encore." 29 echo " Connectez-vous une fois en admin!" 30 exit 31 fi 32 33 BASEDN=$(cat /etc/ldap/ldap.conf | grep '^BASE' | tr "\n" " " | sed -e "s/ \{2,\}/ /g" | cut -d" " -f2) 34 ladate=$(date +"%Y.%m.%d-%H.%M.%S"); 35 36 EXPORT_CSV(){ 37 if [ -z "$2" ]; then 38 destination="/home/admin/Docs/export_csv_groupe_$1}_$ladate}" 39 else 40 destination="/home/admin/Docs/export_csv_groupe_$2}_$ladate}" 41 fi 42 mkdir -p "$destination}" 43 44 echo "Login;Nom complet;Nom;Prenom;Naissance;Sexe;Email" > "$destination}/$1.csv" 45 ldapsearch -xLLL cn=$1 | grep "^memberUid: " | sed -e "s/memberUid: //" | while read uid 46 do 47 nom_complet=$(ldapsearch -xLLL uid=$uid cn | grep "^cn: " | sed -e "s/^cn: //") 48 lnom_complet=$(($(echo "$nom_complet" | wc -m)-1)) 49 50 nom=$(ldapsearch -xLLL uid=$uid sn | grep "^sn: " | sed -e "s/^sn: //") 51 lnom=$(($(echo "$nom" | wc -m)-1)) 52 53 ldiff=$(($lnom_complet-$lnom)) 54 nb=$(($ldiff-1)) 55 56 prenom=$nom_complet:0:$nb} 57 58 mail=$(ldapsearch -xLLL uid=$uid mail | grep "^mail: " | sed -e "s/^mail: //") 59 60 gecos=$(ldapsearch -xLLL uid=$uid gecos | grep "^gecos: " | sed -e "s/^gecos: //") 61 naissance=$(echo "$gecos" | cut -d"," -f2) 62 sexe=$(echo "$gecos" | cut -d"," -f3) 63 64 echo "$uid;$nom_complet;$nom;$prenom;$naissance;$sexe;$mail" | tee -a "$destination}/$1.csv" 65 done 66 } 67 68 if [ "$1" = "__CLASSES__" ]; then 69 ldapsearch -xLLL cn=Classe_* cn | grep "^cn: " | sed -e "s/^cn: //" | while read classe 70 do 71 EXPORT_CSV $classe 'CLASSES' 72 done 73 chown -R admin "/home/admin/Docs/export_csv_groupe_CLASSES_$ladate}" 74 else 75 test=$(ldapsearch -xLLL -b ou=Groups,$BASEDN cn=$1) 76 if [ -z "$test" ]; then 77 echo "Le groupe proposé n'existe pas dans l'annuaire." 78 else 79 EXPORT_CSV $1 80 chown -R admin "/home/admin/Docs/export_csv_groupe_$1}_$ladate}" 81 fi 82 fi 83 84 echo "Terminé." 85
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |