[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/usr/share/se3/scripts/ -> deploy_mozilla_tb_final.sh (source)

   1  #!/bin/bash
   2  ## $Id: deploy_mozilla_tb_final.sh 7420 2012-09-24 22:12:04Z keyser $ ##
   3  #### script permettant de ventiler le profil de thunderbird ####
   4  
   5  # Si un profil thunderbird a été crée par un utilisateur,
   6  # celui ci sera ignoré par le script.
   7  # franck molle 03/2005
   8  # le script permet desormais de redeployer les profils sans pour autant ecraser s'ils ont ete modifies par l'utilisateur.
   9  # sauf à passer en parametre "force_delete"
  10  
  11  # Modifs Stephane Boireau: 11/03/2006
  12  chemin_html="/var/www/se3/tmp"
  13  
  14  #Couleurs
  15  # COLTITRE="\033[1;35m"    # Rose
  16  # COLPARTIE="\033[1;34m"    # Bleu
  17  #
  18  # COLTXT="\033[0;37m"    # Gris
  19  # COLCHOIX="\033[1;33m"    # Jaune
  20  # COLDEFAUT="\033[0;33m"    # Brun-jaune
  21  # COLSAISIE="\033[1;32m"    # Vert
  22  #
  23  # COLCMD="\033[1;37m"    # Blanc
  24  #
  25  # COLERREUR="\033[1;31m"    # Rouge
  26  # COLINFO="\033[0;36m"    # Cyan
  27  
  28  ERREUR()
  29  {
  30      echo "$COLERREUR"
  31      echo "ERREUR!"
  32      echo "$1"
  33      echo ""
  34      exit 1
  35  }
  36  #echo "Géneration des profils de Mozilla Thunderbird<br>"
  37  #echo "<br>"
  38  # echo -e "Les profils deja existants seront ignorés"
  39  # echo -e ""
  40  
  41  ## $Id: deploy_mozilla_tb_final.sh 7420 2012-09-24 22:12:04Z keyser $ ##
  42  
  43  AIDE()
  44  {
  45      echo "Permet de déployer les profils Mozilla Thunderbird sans les répertoires personnels"
  46      echo "Usage : deploy_mozilla_tb_final.sh option1 option2 option3 option4"
  47      echo "option1 et option2 sont obligatoires alors que option3 et  option4 sont facultatives"
  48      echo "option1 :  le nom du groupe des utilisateurs à générer, all pour tous les utilisateurs de l'annuaire"
  49      echo "option2 : force_move afin de régénérer les profils existants en sauvegardant, no_move pour ne rien toucher"
  50      echo "option3 : nom du serveur pop "
  51      echo "option4 : nom du serveur smtp"
  52      echo "--help ou -h cette aide"
  53  
  54  }
  55  
  56  if [ "$1"  "--help" -o "$1"  "-h" -o "$1"  "" ]
  57  then
  58  AIDE
  59  fi
  60  
  61  
  62  if [ -z "$1" ]; then
  63      ERREUR "$0 prend au moins en arguments la liste des utilisateurs à générer, all pour tous les homes"
  64  fi
  65  
  66  OPTION="$2"
  67  
  68  if [ "$OPTION" != "force_move" -o "$OPTION"  "no_move" ]
  69  then
  70  AIDE
  71  fi
  72  
  73  POP_SERVEUR="$3"
  74  SMTP_SERVEUR="$4"
  75  
  76  
  77  WWWPATH="/var/www"
  78  LADATE=$(date +%D_%Hh%M | sed -e "s!/!_!g")
  79  
  80  
  81  if [ -e $WWWPATH/se3/includes/config.inc.php ]; then
  82          dbhost=`cat $WWWPATH/se3/includes/config.inc.php | grep "dbhost=" | cut -d = -f 2 |cut -d \" -f 2`
  83          dbname=`cat $WWWPATH/se3/includes/config.inc.php | grep "dbname=" | cut -d = -f 2 |cut -d \" -f 2`
  84          dbuser=`cat $WWWPATH/se3/includes/config.inc.php | grep "dbuser=" | cut -d = -f 2 |cut -d \" -f 2`
  85          dbpass=`cat $WWWPATH/se3/includes/config.inc.php | grep "dbpass=" | cut -d = -f 2 |cut -d \" -f 2`
  86  
  87  else
  88      ERREUR "Impossible de trouver $WWWPATH/se3/includes/config.inc.php"
  89  fi
  90  
  91  path2UserSkel=`echo "SELECT value FROM params WHERE name='path2UserSkel'" | mysql -h $dbhost $dbname -u $dbuser -p$dbpass -N`
  92  if [ -z "$path2UserSkel" ]; then
  93      path2UserSkel="/etc/skel/user"
  94  fi
  95  lcsIp=`echo "SELECT value FROM params WHERE name='lcsIp'" | mysql -h $dbhost $dbname -u $dbuser -p$dbpass -N`
  96  
  97  #Seuls les homes deja existants seront complétés
  98  # Les compte crees par les utilisateurs seront ignorés
  99  CHEMIN_TB_SOURCE="$path2UserSkel}/profil/appdata/Thunderbird"
 100  
 101  if [ "$1"  "all" ]; then
 102      list=$(ls /home | grep -v netlogon | grep -v templates)
 103  else
 104  
 105  
 106  ### recuperation des parametres actuels de l'annuaire dans la base ####
 107      BASEDN=`echo "SELECT value FROM params WHERE name=\"ldap_base_dn\"" | mysql -h $dbhost $dbname -u $dbuser -p$dbpass -N`
 108  
 109      TST_GRP=$(ldapsearch -xLLL cn=$1 -b $BASEDN | grep member)
 110  
 111      if [ -z "$TST_GRP" ]; then
 112      TST_UID=$(ldapsearch -xLLL uid="$1")
 113          if [ -z "$TST_UID" ]; then
 114              ERREUR "Impossible de trouver le groupe ou l'utilisateur passé en paramètre dans l'annuaire Ldap"
 115          else
 116              list=$1
 117          fi
 118      else
 119          TST_GRP_POSIX=$(ldapsearch -xLLL "cn=$1" | grep memberUid)
 120          if [ -z "$TST_GRP_POSIX" ]; then
 121              list=$(ldapsearch -x -LLL cn=$1 -b $BASEDN | grep uid | cut -d " " -f2 |  cut -d "=" -f2 | cut -d "," -f1)
 122          else
 123              list=$(ldapsearch -x -LLL "cn=$1" | grep memberUid | cut -d " " -f2)
 124          fi
 125      fi
 126  
 127  fi
 128  
 129  # echo "$list"
 130  # read
 131  
 132  
 133  
 134  
 135  #======================================================
 136  # Nombre de dossiers à traiter:
 137  nbdossiers=$(echo "$list" | wc -l)
 138  compteur=1
 139  
 140  mkdir -p $chemin_html
 141  chown www-se3 $chemin_html
 142  
 143  echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
 144  <html>
 145  <head>
 146  <meta http-equiv=\"refresh\" content=\"2\">
 147  <title>Traitement des profils</title>
 148  </head>
 149  <body>
 150  <h1 align=\"center\">Traitement des profils</h1>
 151  <p align=\"center\">Le traitement va démarrer...<br></p>
 152  </body>
 153  </html>" > $chemin_html/recopie_profils_thunderbird.html
 154  chmod 755 $chemin_html/recopie_profils_thunderbird.html
 155  chown www-se3 $chemin_html/recopie_profils_thunderbird.html
 156  #======================================================
 157  
 158  for user in $list
 159  # echo "$list" | while read user
 160  # ls /home | grep -v netlogon | grep -v templates | while read user
 161  do
 162      if [ ! -e /home/$user ]; then
 163      echo ""
 164  #     echo "/home/<A HREF="/annu/people.php?uid=$user">$user</A> n'existe pas"
 165      else
 166  
 167          MAIL=$(ldapsearch -xLLL "uid=$user" | grep mail | cut -d " " -f2)
 168          PRENOM=$(ldapsearch -xLLL "uid=$user" | grep gecos | cut -d " " -f2)
 169          NOM=$(ldapsearch -xLLL "uid=$user" | grep gecos | cut -d " " -f3 | cut -d "," -f1)
 170          DOMNAME=$(ldapsearch -xLLL "uid=$user" | grep mail | cut -d " " -f2 | cut -d "@" -f2)
 171  
 172          PREF_JS="/home/$user/profil/appdata/Thunderbird/Profiles/default/prefs.js"
 173          if [ -z "$lcsIp" ]; then
 174              PREF_JS_TMP="/home/$user/profil/appdata/Thunderbird/Profiles/default/prefs.js.slis"
 175          else
 176              PREF_JS_TMP="/home/$user/profil/appdata/Thunderbird/Profiles/default/prefs.js.lcs"
 177          fi
 178  
 179          CHEMIN_CIBLE="/home/$user/profil/appdata/Thunderbird/Profiles/default"
 180          CHEMIN_TB_CIBLE="/home/$user/profil/appdata/Thunderbird"
 181          FICHIER_PROFILES="$CHEMIN_TB_CIBLE}/profiles.ini"
 182  
 183  
 184  
 185          #echo "<br>"
 186          echo "Traitement de <A HREF="/annu/people.php?uid=$user">$user</A> <br>"
 187  
 188          #===================================================
 189          echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
 190  <html>
 191  <head>
 192  <meta http-equiv=\"refresh\" content=\"2\">
 193  <title>Traitement des profils</title>
 194  </head>
 195  <body>
 196  <h1 align=\"center\">Traitement des profils</h1>
 197  <p align=\"center\">Traitement de $user...<br>($compteur/$nbdossiers)</p>
 198  </body>
 199  </html>" > $chemin_html/recopie_profils_thunderbird.html
 200          #===================================================
 201  
 202          if [ ! -e $CHEMIN_TB_CIBLE ]; then
 203                  echo "Le profil TB de <A HREF="/annu/people.php?uid=$user">$user</A> n'existe pas, je le crée avec les paramètres :"
 204                  echo "$MAIL"
 205                  cp -a $CHEMIN_TB_SOURCE $CHEMIN_TB_CIBLE
 206  
 207                  # Personalisation du profil
 208              [ -z "$POP_SERVEUR" ] && POP_SERVEUR="$DOMNAME"
 209              [ -z "$SMTP_SERVEUR" ]&& SMTP_SERVEUR="$DOMNAME"
 210                  cat $PREF_JS_TMP \
 211                      | sed -e "s/nom_compte_replace@domaine/$MAIL/g" \
 212                      | sed -e "s/nom_compte_replace/$user/g" \
 213                      | sed -e "s/domaine/$DOMNAME/g" \
 214                      | sed -e "s/pop.replace.fr/$POP_SERVEUR/g" \
 215                      | sed -e "s/smtp.replace.fr/$SMTP_SERVEUR/g" \
 216                      | sed -e "s/votre_nom_replace/$PRENOM\ $NOM/g" \
 217                      | sed -e "s/nom_serveur_replace/$lcsIp/g" \
 218                      | sed -e "s/login_replace/$user/g" >  $PREF_JS
 219                  ## correction des droits##
 220                  chown -R $user:admins $CHEMIN_TB_CIBLE > /dev/null 2>&1
 221                  chmod -R 700 $CHEMIN_TB_CIBLE > /dev/null 2>&1
 222  
 223  
 224          else
 225                  echo "Le profil Mozilla Thunderbird existe déjà.<br>"
 226  #                 echo "<br>"
 227                  #echo "Traitement de <A HREF="/annu/people.php?uid=$user">$user</A> <br>"
 228  
 229                  if [ -e $FICHIER_PROFILES ]; then
 230                      TYPE_PROFILE=$(grep 'Path=Profiles/default' "$FICHIER_PROFILES")
 231                      if [ ! -z $TYPE_PROFILE ]; then
 232                      #echo "C un profil type automatique"
 233                      NB_COMPTES_MAIL=$(ls $CHEMIN_CIBLE/Mail | grep -v "defaultbal" | grep -v "Local Folders")
 234  
 235                      if [ -z "$NB_COMPTES_MAIL" ]; then
 236          #                 echo "test 1 passé pas de compte supplémentaire"
 237  
 238  #                         
 239                          if [ ! -s $CHEMIN_CIBLE/Mail/defaultbal/Inbox ]; then
 240          #                 echo "le compte est a zero, donc on peut le régénérer"
 241                          PROFIL_DEL="ok"
 242  
 243                          else
 244                          echo "le profil Thunderbird contient des données.<br>"
 245                          fi
 246  
 247                      else
 248                          echo "Le profil Thunderbird a été modifié par l'utilisateur.<br>"
 249                      fi
 250  
 251  
 252  
 253                      else
 254                      echo "Le profil Thunderbird est un profil personnel.<br>"
 255                      fi
 256                  fi
 257  
 258                  if [ "$PROFIL_DEL"  "ok" ]; then
 259                      rm -rf $CHEMIN_TB_CIBLE
 260                  fi
 261  
 262                  if [ "$OPTION"  "force_move" -a "$PROFIL_DEL" != "ok" ]; then
 263                      echo "<font color=red>On écrase le profil existant mais on sauvegarde sur $CHEMIN_TB_CIBLE}_sauve_$LADATE} </font><br>"
 264                       mv $CHEMIN_TB_CIBLE $CHEMIN_TB_CIBLE}_sauve_$LADATE}
 265                  fi
 266  notifier
 267                  if [ "$PROFIL_DEL"  "ok" -o "$OPTION"  "force_move" ]; then
 268                          echo "Le profil TB de <A HREF="/annu/people.php?uid=$user">$user</A> est régénéré avec les paramètres $MAIL <br>"
 269                          #echo ""
 270  
 271                          cp -a $CHEMIN_TB_SOURCE $CHEMIN_TB_CIBLE
 272  
 273                          # Personalisation du profil
 274                          cat $PREF_JS_TMP \
 275                              | sed -e "s/nom_compte_replace@domaine/$MAIL/g" \
 276                              | sed -e "s/nom_compte_replace/$user/g" \
 277                              | sed -e "s/domaine/$DOMNAME/g" \
 278                              | sed -e "s/pop.replace.fr/$DOMNAME/g" \
 279                              | sed -e "s/smtp.replace.fr/$DOMNAME/g" \
 280                              | sed -e "s/votre_nom_replace/$PRENOM\ $NOM/g" \
 281                              | sed -e "s/nom_serveur_replace/$lcsIp/g" \
 282                              | sed -e "s/login_replace/$user/g" >  $PREF_JS
 283                          ## correction des droits##
 284                          chown -R $user:admins $CHEMIN_TB_CIBLE > /dev/null 2>&1
 285                          chmod -R 700 $CHEMIN_TB_CIBLE > /dev/null 2>&1
 286                  else
 287                      echo "Le profil a été conservé en l'état.<br>"
 288                  fi
 289          echo "<br>"
 290          fi
 291      fi
 292  
 293      #============================================
 294      compteur=$(($compteur+1))
 295      #============================================
 296  done
 297  #============================================
 298  echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
 299  <html>
 300  <head>
 301  <title>Traitement des profils</title>
 302  </head>
 303  <body>
 304  <h1 align=\"center\">Traitement des profils</h1>
 305  <p align=\"center\">Traitement terminé!</p>
 306  </body>
 307  </html>" > $chemin_html/recopie_profils_thunderbird.html
 308  #============================================
 309  exit 0
 310  


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