[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/usr/share/se3/sbin/ -> export_csv_groupe.sh (source)

   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  


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1