[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
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éné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é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é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 être indiqué 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é avec le compte de connexion.<br>Il devra être indiqué 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é à 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ée.<br>Par mesure de sécurité, 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épertoires à 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épertoires à 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épertoires qui peuvent être sauvegardés.<br><br>On conseille par défaut /home, /var/se3 et /etc.<br>Le sé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é sur la machine"); 229 echo "<BR><BR>"; 230 echo gettext("Vous devez d'abord exécuter sur le serveur un apt-get install rsync "); 231 echo "</center>"; 232 } 233 } else echo gettext("Vous n'avez pas les droits nécessaires pour ouvrir cette page..."); 234 235 include ("pdp.inc.php"); 236 ?>
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 |