[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/var/www/se3/ -> conf_rsync.php (source)

   1  <?php
   2  
   3     /**
   4     
   5     * Permet configurer rsync afin de pouvoir sauvegarder le serveur depuis un autre
   6     * @Version $Id: conf_rsync.php 8547 2015-03-15 12:11:42Z plouf $ 
   7     
   8     * @Projet LCS / SambaEdu 
   9     
  10     * @auteurs Philippe Chadefaux
  11  
  12     * @Licence Distribue selon les termes de la licence GPL
  13     
  14     * @note 
  15     
  16     */
  17  
  18     /**
  19  
  20     * @Repertoire: /
  21     * file: conf_rsync.php
  22  
  23    */    
  24  
  25  
  26  
  27  include  "entete.inc.php";
  28  include  "ldap.inc.php";
  29  include  "ihm.inc.php";
  30  
  31  require_once  ("lang.inc.php");
  32  bindtextdomain('se3-core',"/var/www/se3/locale");
  33  textdomain ('se3-core');
  34  
  35  // Fonction pour obtenir les valeurs deja definies dans rsyncd.conf
  36  
  37  /**
  38  * Fonction pour obtenir les valeurs deja definies dans rsyncd.conf
  39  
  40  * @Parametres $name 
  41  * @Return Retourne  la valeur de name contenue dans rsyncd.conf
  42      
  43  */
  44      
  45  
  46  function variable ($Name) { // retourne la valeur de Name
  47      if (file_exists("/etc/rsyncd.conf")) {
  48          $lignes = file("/etc/rsyncd.conf");
  49          foreach ($lignes as $num => $ligne) {
  50              if (ereg ("$Name=(.*)",$ligne,$reg)) {
  51                  $var = trim($reg[1]);
  52                  return $var;
  53              }
  54          }
  55      }    
  56  } // fin function
  57          
  58  
  59  //aide 
  60  $_SESSION["pageaide"]="Sauvegarde_client_Linux#Cas_particulier_:_Sauvegarder_un_serveur_Se3_distant";
  61  
  62  echo "<H1>".gettext("Configure client sauvegarde ")."</H1>\n";
  63  
  64  if (is_admin("system_is_admin",$login)=="Y") {
  65      
  66      // Stop ou start rsync
  67         if ($_GET['action']=="stop") {
  68             exec("sudo /usr/share/se3/scripts/mk_rsyncconf.sh stop");
  69          sleep(5);
  70         } elseif($_GET['action']=="start") {    
  71             exec("sudo /usr/share/se3/scripts/mk_rsyncconf.sh start");
  72          sleep(10);
  73      }    
  74     
  75         // Creation du fichier de conf de rsyncd.conf 
  76         elseif ($_GET['action'] == "rsync_mod") {
  77  
  78          if ($_GET['dc_read']!="no") {$_GET['dc_read']="yes"; }
  79      
  80          $fichier = "/tmp/rsyncd.conf";
  81          $fp=fopen("$fichier","w+");
  82          $DEFAUT = "
  83  uid=root
  84  gid=root
  85  use chroot=no
  86  syslog facility=local5
  87  pid file=/var/run/rsyncd.pid
  88  auth users=".$_GET['dc_user']."
  89  secrets file=/etc/rsyncd.secret
  90  hosts allow=".$_GET['dc_serveur']."
  91  read only=".$_GET['dc_read']."";
  92  
  93  
  94          // Creation des modules a partir des repertoires a sauvegarder
  95          $modules = preg_split("/;/",$_GET['dc_modules'],-1);
  96          for ($i=0; $i < count($modules); $i++) {
  97          
  98              $rep_module = "$modules[$i]";
  99              $nom_module = str_replace("/","",$modules[$i]);
 100              $DEFAUT .= "
 101  
 102  ## $nom_module ; $rep_module 
 103  [$nom_module]
 104      comment = repertoire $rep_module
 105      path = $rep_module";
 106      
 107          }    
 108      
 109          fwrite($fp,$DEFAUT);
 110          fclose($fp);
 111          
 112          
 113          // On lance le script de conf
 114             exec("sudo /usr/share/se3/scripts/mk_rsyncconf.sh start $_GET[dc_user] $_GET[dc_pass]");
 115          unset($action);
 116         }
 117  
 118      // test la presence du paquet
 119      $rsync = exec("dpkg -l | grep rsync  > /dev/null && echo ok");
 120  
 121      // Si deja installe
 122      if ($rsync == "ok") {
 123          echo "<br><br>";
 124  
 125          echo "<form method=\"get\" action=\"conf_rsync.php\">";
 126          echo "<input type=\"hidden\" name=\"action\" value=\"rsync_mod\">";
 127          echo "<table align=center width=\"80%\" border=1 cellspacing=\"0\" cellpadding=\"0\" >\n";
 128          
 129          echo "<tr><td colspan=\"3\" align=\"center\"  class=\"menuheader\" height=\"30\">".gettext("Activation du client de sauvegarde ")."</td></tr>\n";
 130  
 131  
 132          // test si rsync est actif
 133          $rsync_actif = exec("netstat -na | grep 0.0.0.0:873  > /dev/null && echo ok");
 134          
 135          echo "<tr>\n";
 136          echo "<td>".gettext("Etat")."</td>\n";
 137          echo "<td align=\"center\">";
 138          if ($rsync_actif=="ok") {
 139               echo "<u onmouseover=\"this.T_WIDTH=200;return escape".gettext("('<b>Etat : actif</b><br>Permet de bloquer la sauvegarde, sans supprimer la configuration. Cela peut g&#233;n&#233;rer des messages d\'erreur sur le serveur.')")."\">";
 140                   echo "<a href=conf_rsync.php?action=stop><IMG style=\"border: 0px solid;\" SRC=\"elements/images/enabled.png\"  alt=\"Enabled\"></a>";
 141                   echo "</u>";
 142           } else {
 143                   echo "<u onmouseover=\"this.T_WIDTH=200;return escape".gettext("('<b>Etat : inactif</b><br>Permet de r&#233;activer la sauvegarde, sans changer la configuration.')")."\">";
 144               echo "<a href=conf_rsync.php?action=start><IMG style=\"border: 0px solid;\" SRC=\"elements/images/disabled.png\"  alt=\"Disabled\"></a>";
 145               echo "</u>";
 146          }
 147  
 148          echo "<td align=\"center\"><u onmouseover=\"this.T_WIDTH=200;return escape".gettext("('Permet d\'activer ou de d&#233;sactiver le client de sauvegarde.')")."\"><img name=\"action_image1\"  src=\"../elements/images/system-help.png\" alt=\"Help\"></u></td>";
 149          echo "</tr>\n";
 150          
 151          echo "<tr><td colspan=\"3\" align=\"center\"  class=\"menuheader\" height=\"30\">".gettext("Configuration du client de sauvegarde ")."</td></tr>\n";
 152          $dc_user = variable ("auth users");
 153          echo "<tr>";
 154               echo "<td>".gettext("Compte de connexion :")."</td>";
 155                echo "<td align=\"center\"><input name=\"dc_user\" type=\"text\" size=\"40\" value=\"$dc_user\"  ></td>\n";
 156          echo "<td align=\"center\"><u onmouseover=\"return escape".gettext("('Indiquer ici un compte de connexion. Il devra &#234;tre indiqu&#233; avec le mot de passe sur le serveur Backuppc.')")."\"><img name=\"action_image2\"  src=\"../elements/images/system-help.png\"  alt=\"Help\"></u></td>";
 157                echo "</tr>\n";
 158               
 159          $dc_pass = exec("sudo /usr/share/se3/scripts/mk_rsyncconf.sh pass"); 
 160          echo "<tr>\n";
 161              echo "<td>".gettext("Mot de passe")." :</td>";
 162         //     if ($dc_smarthost == "") { $dc_smarthost = "$slisip"; }
 163              echo "<td align=\"center\"><input name=\"dc_pass\" type=\"text\" size=\"40\" value=\"$dc_pass\"  ></td>\n";
 164          echo "<td align=\"center\"><u onmouseover=\"return escape".gettext("('Indiquer ici le mot de passe associ&#233; avec le compte de connexion.<br>Il devra &#234;tre indiqu&#233; sur le serveur Backuppc.')")."\"><img name=\"action_image3\"  src=\"../elements/images/system-help.png\"  alt=\"Help\"></u></td>";
 165              echo "</tr>\n";
 166                
 167          $dc_serveur = variable ("hosts allow");
 168          echo "<tr>\n";
 169              echo "<td>".gettext("Serveur Backuppc")." :</td>";
 170  
 171         //        $dc_serveur = variable ("hosts allow");
 172                 echo "<td  align=\"center\"><input name=\"dc_serveur\" type=\"text\" size=\"40\" value=\"$dc_serveur\" ></td>";
 173          echo "<td align=\"center\"><u onmouseover=\"return escape".gettext("('Indiquer l\'adresse IP du serveur backuppc autoris&#233; &#224; faire la sauvegarde de cette machine.')")."\"><img name=\"action_image4\"  src=\"../elements/images/system-help.png\"  alt=\"Help\"></u></td>";
 174                echo "</tr>\n";
 175  
 176          // Permet de restaurer
 177          $dc_read = variable ("read only");
 178          echo "<tr>\n";
 179              echo "<td>".gettext("Restaurer")." :</td>";
 180                 echo "<td align=\"center\"><input name=\"dc_read\" type=\"checkbox\" value=\"no\"";
 181          if($dc_read=="no") {echo " checked"; }
 182          echo "></td>";
 183          echo "<td align=\"center\"><u onmouseover=\"return escape".gettext("('<b>Autoriser la restauration :</b><br>La croix indique que la restauration est autoris&#233;e.<br>Par mesure de s&#233;curit&#233;, il est souhaitable de ne l\'activer qu\'en cas de besoin.')")."\"><img name=\"action_image5\"  src=\"../elements/images/system-help.png\" alt=\"Help\"></u></td>";
 184                echo "</tr>\n";
 185  
 186  
 187          echo "<tr><td colspan=\"3\" align=\"center\"  class=\"menuheader\" height=\"30\">".gettext("R&#233;pertoires &#224; sauvegarder")."</td></tr>\n";
 188          // Les modules existants
 189          if (file_exists("/etc/rsyncd.conf")) {
 190              $lignes = file("/etc/rsyncd.conf");
 191              $dc_modules="";
 192              foreach ($lignes as $num => $ligne) {
 193                  if (ereg ("##(.*)",$ligne,$reg)) {
 194                      $var = trim($reg[1]);
 195                      list($nom_module,$rep_module)=split(';',$var);
 196                      if ($nom_module != "") {    
 197                          echo "<tr>\n";
 198                              echo "<td> $nom_module</td>";
 199                          echo "<td align=\"center\">$rep_module</td>";
 200  
 201                          echo "<td align=\"center\"><u onmouseover=\"return escape".gettext("('<b>Nom du module</b><br>Vous devez indiquer le nom <b>$nom_module</b> dans l\'interface du serveur de sauvegarde')")."\"><img   src=\"../elements/images/system-help.png\" alt=\"Help\"></u></td>";
 202                          echo "</tr>\n";    
 203                          if ($dc_modules!="") {$dc_modules.=";"; }
 204                          if ($rep_module != "") {
 205                              $dc_modules.=trim($rep_module);
 206                          }
 207                      }    
 208                  }
 209              }    
 210          }
 211          
 212          // Les repertroires
 213          echo "<tr>\n";
 214              echo "<td>".gettext("R&#233;pertoires &#224; sauvegarder")." :</td>";
 215          if($dc_modules=="") {$dc_modules="/home;/etc;/var/se3";}
 216                 echo "<td  align=\"center\"><input name=\"dc_modules\" type=\"text\" size=\"40\" value=\"$dc_modules\" ></td>";
 217          echo "<td align=\"center\"><u onmouseover=\"return escape".gettext("('Indiquer les r&#233;pertoires qui peuvent &#234;tre sauvegard&#233;s.<br><br>On conseille par d&#233;faut /home, /var/se3 et /etc.<br>Le s&#233;parateur est le  point virgule.')")."\"><img name=\"action_image7\"  src=\"../elements/images/system-help.png\" alt=\"Help\"></u></td>";
 218                echo "</tr>\n";
 219  
 220              
 221          echo "</table>\n";
 222          echo "<br><br>";
 223          echo "<center><input type=\"submit\"  value=\"".gettext("Valider")."\"></center>";
 224          echo "</form>\n";      
 225      } else {
 226          echo "<br><br>";
 227          echo "<center>";
 228          echo gettext("Le paquet rsync ne semble pas install&#233; sur la machine");
 229          echo "<BR><BR>";
 230          echo gettext("Vous devez d'abord ex&#233;cuter sur le serveur un apt-get install rsync ");
 231          echo "</center>";
 232      }    
 233  } else echo gettext("Vous n'avez pas les droits n&#233;cessaires pour ouvrir cette page...");
 234  
 235  include ("pdp.inc.php");
 236  ?>


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