[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 3 4 /** 5 6 * Permet configurer la sauvegarde (Backuppc) 7 * @Version $Id: new_host.php 4187 2009-06-19 09:22:12Z gnumdk $ 8 9 * @Projet LCS / SambaEdu 10 11 * @auteurs Philippe Chadefaux 12 13 * @Licence Distribue selon les termes de la licence GPL 14 15 * @note 16 17 */ 18 19 /** 20 21 * @Repertoire: sauvegarde 22 * file: new_host.php 23 24 */ 25 26 27 28 include "entete.inc.php"; 29 require ("config.inc.php"); 30 require ("ldap.inc.php"); 31 require ("ihm.inc.php"); 32 include ("fonction_backup.inc.php"); 33 include ("fonctions_rsyncdconf.inc.php"); 34 35 require_once ("lang.inc.php"); 36 37 bindtextdomain('sauvegarde',"/var/www/se3/locale"); 38 textdomain ('sauvegarde'); 39 40 41 42 43 // Verifie les droits 44 if (is_admin("system_is_admin",$login)=="Y") { 45 46 $HostServer = $_GET['HostServer']; 47 $TypeServer = $_GET['TypeServer']; 48 $XferMethod = $_GET['XferMethod']; 49 $dhcp = $_GET['dhcp']; 50 $Share = $_GET['Share']; 51 $defo = $_GET['defo']; 52 $Compte = $_GET['Compte']; 53 $PassWord = $_GET['PassWord']; 54 $AclName = $_GET['AclName']; 55 $LdapName = $_GET['LdapName']; 56 $MysqlName = $_GET['MysqlName']; 57 $Secrets = $_GET['Secrets']; 58 $BackupFilesExclude = $_GET['BackupFilesExclude']; 59 $TypeServerOld = $_GET['TypeServerOld']; 60 $err = $_GET['err']; 61 $ArchiveDest = $_GET['ArchiveDest']; 62 $ArchiveSplit = $_GET['ArchiveSplit']; 63 64 65 if ($Share != "") { 66 $Share = stripslashes($Share); 67 } 68 if ($BackupFilesExclude != "") { 69 $BackupFilesExclude = stripslashes($BackupFilesExclude); 70 } 71 72 73 $pass="0"; 74 if ($TypeServer == $TypeServerOld) { 75 $pass = "1"; 76 } 77 $TypeServerOld = "$TypeServer"; 78 79 80 /****************************************************************************************/ 81 echo "<P><h1>".gettext("Ajout d'une machine à sauvegarder")."</h1></P>\n"; 82 echo "<br><br>"; 83 84 /***************************** Erreurs **************************************************/ 85 echo "<center>"; 86 if ($err == "1") { 87 echo "<font color=\"red\">".gettext("Attention : le nom que vous avez donné existe déjà, vous ne pouvez pas donner ce nom")."</font>"; 88 echo "<br><br>"; 89 } 90 if ($err == "2") { 91 echo "<font color=\"red\">".gettext("Attention : Vous devez indiquer le compte ou le mot de passe pour la connexion")." $XferMethod</font>"; 92 echo "<br><br>"; 93 } 94 if ($err == "3") { 95 echo "<font color=\"red\">".gettext("Attention : Vous devez indiquer la clé pour la connexion")." $XferMethod</font>"; 96 echo "<br><br>"; 97 } 98 99 if ($err == "4") { 100 echo "<font color=\"red\">".gettext("Attention : Certains champs obligatoires ne sont pas remplis.<br> Vous devez commencer par le Type de machine.")." </font>"; 101 echo "<br><br>"; 102 } 103 104 /************************************************************************/ 105 106 echo "<form method=\"get\" action=\"new_host_suite.php\" >"; 107 108 echo "<input type=\"hidden\" name=\"TypeServerOld\" value=\"$TypeServerOld\">"; 109 echo "<table align=center width=\"70%\" border=1 cellspacing=\"0\" cellpadding=\"0\"> 110 <tr><td colspan=\"2\" class='menuheader' height=\"30\" align=\"center\">".gettext("Machine à sauvegarder")."</td></tr>\n"; 111 112 if ($TypeServer!="Archive") { 113 echo "<tr><td width=\"40%\">".gettext("Type de machine :")."</td> 114 <td><select name=\"TypeServer\" ONCHANGE=\"this.form.submit();\"> 115 <option value=\"\">".gettext("Sélectionner")."</option>"; 116 echo "<option"; if ($TypeServer=="Local") { echo " selected"; } echo " VALUE=\"Local\">Local</option>"; 117 echo "<option"; if ($TypeServer=="Se3") { echo " selected"; } echo " VALUE=\"Se3\">Se3 </option>"; 118 // echo "<option"; if ($TypeServer=="Slis") { echo " selected"; } echo ">Slis</option>"; 119 echo "<option"; if ($TypeServer=="Lcs") { echo " selected"; } echo ">Lcs</option>"; 120 //echo "<option"; if ($TypeServer=="WinXP") { echo " selected"; } echo " VALUE=\"WinXP\">Windows (smb)</option>"; 121 // echo "<option"; if ($TypeServer=="WinRsync") { echo " selected"; } echo " VALUE=\"WinRsync\">Windows (rsyncd)</option>"; 122 echo "<option"; if ($TypeServer=="Autre") { echo " selected"; } echo ">".gettext("Autre")."</option>"; 123 echo "</select> <u onmouseover=\"return escape".gettext("('Sélectionner le type de machine que vous souhaitez sauvegarder.<br><br> - Si la machine à sauvegarder est la machine sur laquelle tourne le serveur de sauvegarde, sélectionner Local.<br><br> - Pour un Se3 ou LCS, sur une autre machine sélectionner Se3 ou LCS, et installer rsyncd sur ce Se3 ou LCS distant.<br><br> - Pour sauvegarder une machine Windows avec le protocole samba sélectionner Autre puis le protocole smb<br><br> - Pour une machine Windows en utilisant rsyncd, sélectionner Autre puis le protocole rsyncd. Cela nécessite d\'installer rsyncd sur la machine windows à sauvegarder.<br><br>En fonction du choix que vous faites, des configurations vous seront proposées. Il vous est toujours possible de faire un autre choix en sélectionnant Autre.')")."\"><img name=\"action_image2\" src=\"../elements/images/system-help.png\"></u> </td></tr>\n"; 124 } 125 126 127 // Indique ici les choix imposes ou conseilles. Uniquement au premier passage 128 if ($pass=="0") { 129 // si type est Se3 alors le protocole est smb 130 if ($TypeServer=="WinXP") { 131 $XferMethod="smb"; 132 $BackupFilesExclude = ""; 133 $Share="'C:\BCDI'"; 134 $dhcp="1"; 135 } 136 137 if ($TypeServer=="WinRsync") { 138 $XferMethod="rsyncd"; 139 $BackupFilesExclude = ""; 140 $Share="'BCDI'"; 141 $dhcp="1"; 142 } 143 // Si la machine est local et de type Se3 on propose rsyncd 144 if ($TypeServer=="Local") { 145 $dhcp = "0"; 146 $XferMethod = "rsyncd"; 147 $Model = "Se3"; 148 $HostServer="localhost"; 149 $BackupFilesExclude = ""; 150 $Share="/var/se3;/home;/etc"; 151 // On teste si /etc/rsyncd.conf existe 152 if(rsyncd_conf_ok()) { 153 // on va lire le contenu 154 $Compte=variable("auth users"); 155 $PassWord=rsyncd_pass(); 156 // } else { 157 // Si il n'existe pas on le cree par defaut 158 159 } 160 } 161 if ($TypeServer=="Lcs") { 162 $XferMethod = "rsyncd"; 163 $Share="root"; 164 $BackupFilesExclude = "'/var/spool/squid','/var/mail','/var/spool/mail','/tmp','/var/cache/apt/archives','/proc','/mnt','/var/lib/backuppc','/usr/share/doc'"; 165 } 166 if ($TypeServer=="Se3") { 167 $XferMethod = "rsyncd"; 168 $BackupFilesExclude = ""; 169 $Share="varse3;home;etc"; 170 } 171 172 if ($TypeServer=="Autre") { 173 $XferMethod = ""; 174 $BackupFilesExclude = ""; 175 $Share=""; 176 } 177 if ($TypeServer=="Archive") { 178 $XferMethod = "archive"; 179 } 180 } 181 182 // On impose le choix du type serveur en premier 183 if ($TypeServer=="") { 184 $HostServer = ""; 185 $XferMethod = ""; 186 $BackupFilesExclude = ""; 187 $Share = ""; 188 } 189 190 if ($TypeServer=="Archive") { 191 192 echo "<tr><td>".gettext("Nom de l'archive")."</td><td><input type=text name=\"HostServer\" value=\"$HostServer\" size=\"45\"> <u onmouseover=\"return escape".gettext("('Indiquer ici le nom de l\'archive, par exemple cdArchiv ou TapeArchiv, ou en fonction du nom de la machine dont vous souhaitez archiver les sauvegardes.<br>Eviter les caractéres particuliers.')")."\"><img name=\"action_image2\" src=\"../elements/images/system-help.png\"></u> </td></tr>"; 193 echo "</table>\n"; 194 echo "<br><br>"; 195 196 echo "<table align=center width=\"70%\" border=1 cellspacing=\"0\" cellpadding=\"0\">"; 197 echo "<tr><td colspan=\"2\" class='menuheader' height=\"30\" align=\"center\">".gettext("Support d'archivage")."</td></tr>\n"; 198 echo "<tr><td>".gettext("Destination de l'archive")."</td><td><input type=\"text\" name=\"ArchiveDest\" value=\"$ArchiveDest\"> <u onmouseover=\"return escape".gettext("('Indiquer le support sur lequel archiver. /tmp pour le mettre dans le répertoire tmp.<br><br>Pour archiver sur une bande indiquer /dev/st0 (à vérifier en fonction de votre machine).')")."\"><img name=\"action_image2\" src=\"../elements/images/system-help.png\"></u> </td></tr>\n"; 199 echo "<tr><td>".gettext("Taille de l'archive")."</td><td><input type=\"text\" name=\"ArchiveSplit\" value=\"$ArchiveSplit\"> <u onmouseover=\"return escape".gettext("('Indiquer la taille de l\'archive. Par exemple pour archiver sur un CD, en utilisant un graveur, indiquer 650. l\'archive sera alors coupée en plusieurs fichiers de 650.<br><br>Si vous laissez vide, aucune taille limite ne sera donnée (0 pas défaut).')")."\"><img name=\"action_image2\" src=\"../elements/images/system-help.png\"></u> </td></tr>\n"; 200 echo "</table>"; 201 echo "<input type=\"hidden\" name=\"XferMethod\" value=\"archive\" />"; 202 echo "<input type=\"hidden\" name=\"TypeServer\" value=\"Archive\" />"; 203 echo "<input type=\"hidden\" name=\"dhcp\" value=\"1\" />"; 204 } else { 205 if (($TypeServer != "Local") && ($HostServer == "localhost")) { $HostServer = ""; } 206 echo "<tr><td>".gettext("Nom de la machine")."</td><td><input type=text name=\"HostServer\" value=\"$HostServer\"> <u onmouseover=\"return escape".gettext("('Indiquer le nom de la machine à sauvegarder.<br><br> - Dans le cas d\'une machine windows, indiquer son nom netbios.<br>Sinon indiquer son nom DNS si elle est indiquée dans un serveur de nom (cela peut être lycéee.ac-académie.fr).<br><br>Pour vérifier, vous pouvez faire un ping avec ce nom afin de vérifier que la machine à sauvegarder est bien vu.')")."\"><img name=\"action_image2\" src=\"../elements/images/system-help.png\"></u> </td></tr>"; 207 echo "<tr><td>".gettext("Nom DNS")."</td><td><select name=\"dhcp\">"; 208 echo "<option value=\"0\""; if ($dhcp=="0") echo " selected"; echo ">".gettext("Trouvable par son nom (ip fixe)")."</option>"; 209 echo "<option value=\"1\""; if ($dhcp=="1") echo " selected"; echo ">".gettext("Non trouvable par son nom (Pas d'ip fixe)")."</option>"; 210 echo "</select> <u onmouseover=\"return escape".gettext("('Si votre machine n\'est pas dans un serveur de nom, vous devez indiquer Pas d\'ip fixe. Ce cas est le plus fréquent dans un établissement scolaire.<br>Ne pas oublier dans la configuration générale d\'indiquer la plage d\'adresses pour la recherche des machines.<br>Ce cas concerne toutes les machines clientes<br>Si votre machine est trouvable par son nom, indiquer Ip fixe.<br><br>Comment savoir si une machine est visible par le serveur de sauvegarde ?<br>Essayer depuis celui-ci de la pinguer avec le nom que vous avez indiqué.<br>Les machines windows sont recherchées avec leur nom netbios.<br><br>Attention : les firewall sur les machines à sauvegarder, peuvent bloquer la recherche de la machine.')")."\"><img name=\"action_image2\" src=\"../elements/images/system-help.png\"></u> </td></tr>\n"; 211 echo "</table>"; 212 213 echo "<br><br>"; 214 215 // Type de sauvegarde 216 echo "<table align=center width=\"70%\" border=1 cellspacing=\"0\" cellpadding=\"0\">"; 217 echo "<tr><td colspan=\"2\" class='menuheader' height=\"30\" align=\"center\">".gettext("Type de Sauvegarde")."</td></tr>\n"; 218 echo "<tr><td width=\"50%\">".gettext("Type de sauvegarde :")."</td>"; 219 if ($TypeServer == "WinXP") { 220 echo "<td> smb</td></tr>"; 221 echo "<input type=\"hidden\" name=\"XferMethod\" value=\"smb\" />"; 222 } 223 elseif ($TypeServer == "WinRsync") { 224 echo "<td> rsyncd</td></tr>"; 225 echo "<input type=\"hidden\" name=\"XferMethod\" value=\"rsyncd\" />"; 226 } 227 elseif (($TypeServer == "Se3") || ($TypeServer == "Lcs")) { 228 echo "<td> rsyncd</td></tr>"; 229 echo "<input type=\"hidden\" name=\"XferMethod\" value=\"rsyncd\" />"; 230 } 231 elseif ($TypeServer == "Local") { 232 echo "<td> rsyncd</td></tr>"; 233 echo "<input type=\"hidden\" name=\"XferMethod\" value=\"rsyncd\" />"; 234 } 235 else { 236 echo "<td><select name=\"XferMethod\" ONCHANGE=\"this.form.submit();\"> 237 <option value=\"\">".gettext("Sélectionner")."</option> 238 <option"; 239 if ($XferMethod=="smb") { echo " selected"; } 240 echo ">smb</option><option"; 241 if ($XferMethod=="rsync") { echo " selected"; } 242 echo ">rsync</option><option"; 243 if ($XferMethod=="rsyncd") { echo " selected"; } 244 echo ">rsyncd</option></select>\n"; 245 echo " <u onmouseover=\"return escape".gettext("('Sélectionner le type de protocole à utiliser pour faire les sauvegardes.<br><br> - smb : à utiliser pour sauvegarder les machines windows. Vous devez fournir un compte et un mot de passe pour se connecter. Il faut donner les droits nécessaires afin de pouvoir faire les sauvegardes.<br><br> - rsync : est utilisé pour faire une sauvegarde sur une machine distante, via un tunnel crypté SSH. Vous devez fournir la clé que vous avez généré sur le serveur de sauvegarde à la machine à sauvegarder afin de pouvoir vous y connecter. Voir la documentation.<br><br> - tar : disponible que si vous sauvegardez le serveur de sauvegarde lui même. Cette méthode n'est plus conseillée. Remplacée par rsyncd.<br><br> - rsyncd : Vous devez mettre en place rsyncd sur la machine que vous souhaitez sauvegarder. Vous devrez indiquer le compte plus mot de passe. rsyncd peut aussi être utilisé, pour sauvegarder des machines Windows. Voir la documentation.')")."\"><img name=\"action_image2\" src=\"../elements/images/system-help.png\"></u> </td></tr>"; 246 } 247 248 if(($XferMethod=="smb") or ($XferMethod=="rsyncd")) { 249 echo "<tr><td>"; 250 echo "<TR><td>".gettext("Compte de connexion")."</td><td><input type=text name=\"Compte\" value=\"$Compte\"></td></tr>"; 251 echo "<tr><td>".gettext("Mot de passe")."</td><td><input type=text name=\"PassWord\" value=\"$PassWord\"></td></tr>"; 252 } 253 254 echo "</table>\n"; 255 echo "<br><br>\n"; 256 257 if ($TypeServer!="") { 258 echo "<table align=center width=\"70%\" border=1 cellspacing=\"0\" cellpadding=\"0\">"; 259 echo "<tr><td colspan=\"2\" class='menuheader' height=\"30\" align=\"center\">"; 260 if($XferMethod!="rsyncd") { 261 echo gettext("Répertoires à Sauvegarder"); 262 } else { 263 echo gettext("Modules de sauvegarde"); 264 } 265 echo "</td></tr>\n"; 266 } 267 268 if (($Model=="Se3") and (($XferMethod=="rsync") or ($XferMethod == "tar"))) { 269 echo "<input type=\"hidden\" name=\"Model\" value=\"Se3\" />"; 270 echo "<tr><td>"; 271 echo "ACL ".gettext("des répertoires")." /var/se3 </td><td align=\"center\"><input type=\"checkbox\" name=\"AclName\" checked disabled>"; 272 echo " <u onmouseover=\"return escape".gettext("('Les ACL de /var/se3 sont sauvegardées automatiquement toutes les nuits, dans /var/se3/save, les ACL de home, n\'ont pas besoin de l\'être car reconstruite automatiquement.')")."\"><img name=\"action_image2\" src=\"../elements/images/system-help.png\"></u> \n"; 273 echo "</td></tr>"; 274 echo "<tr><td>"; 275 echo gettext("Annuaire LDAP")." </td><td align=\"center\"><input type=\"checkbox\" name=\"LdapName\" checked disabled>"; 276 echo " <u onmouseover=\"return escape".gettext("('L\'annuaire LDAP est sauvegardé automatiquement toutes les nuits dans /var/se3, en sauvegardant ce répertoire vous les sauvegardez donc aussi.')")."\"><img name=\"action_image2\" src=\"../elements/images/system-help.png\"></u> \n"; 277 echo "</td></tr>"; 278 echo "<tr><td>"; 279 echo gettext("Base MySQL")."</td><td align=\"center\"><input type=\"checkbox\" name=\"MysqlName\""; 280 if($MysqlName=="on") {echo " checked"; } 281 if($pass=="0") {echo " checked"; } 282 echo ">"; 283 284 echo " <u onmouseover=\"return escape".gettext("('Une partie des bases MySQL (se3db et mysql) sont sauvegardées automatiquement. En cliquant sur sauvegarder les bases MySQL, vous allez sauvegarder les autres (Inventory ...).')")."\"><img name=\"action_image2\" src=\"../elements/images/system-help.png\"></u> \n"; 285 echo "</td></tr>"; 286 $Share = "'/home','/var/se3'"; 287 } 288 289 if (($Model=="Slis") and (($XferMethod=="rsync") or ($XferMethod=="tar"))) { 290 echo "<input type=\"hidden\" name=\"Model\" value=\"Slis\" />"; 291 echo "<tr><td>"; 292 echo gettext("Répertoire")." /home</td><td align=\"center\"><input type=\"checkbox\" name=\"ShareName1\">"; 293 echo "</td></tr>"; 294 echo "<tr><td>"; 295 echo "Logs</td><td align=\"center\"><input type=\"checkbox\" name=\"ShareName2\">"; 296 echo "</td></tr>"; 297 echo "<tr><td>"; 298 echo gettext("Base Postgres")."</td><td align=\"center\"><input type=\"checkbox\" name=\"PgsqlName\">"; 299 echo "</td></tr>"; 300 echo "<tr><td>"; 301 echo gettext("Annuaire LDAP")."</td><td align=\"center\"><input type=\"checkbox\" name=\"LdapName\">"; 302 echo "</td></tr>"; 303 } 304 305 if($TypeServer!="") { 306 if(($XferMethod!="rsyncd") or ($TypeServer == "Local")) { 307 echo "<tr><td width=\"40%\">".gettext(" Répertoires à sauvegarder :")."</td>"; 308 } else { 309 echo "<tr><td width=\"40%\">".gettext("Modules à sauvegarder :")."</td>"; 310 } 311 echo "<td><input type=\"text\" name=\"Share\" value=\"$Share\" size=\"40\"> <u onmouseover=\"return escape".gettext("('Indiquer les répertoires à sauvegarder. Vous devez mettre des <b>;</b> entre chaque répertoire.<br>Par exemple /home;/var/se3;/etc<br><br> - Si la méthode de sauvegarde est rsyncd, vous devez indiquer le nom des modules, pas les répertoires. Exemple module1;module2. Les répertoires à sauvegarder sont à indiquer dans le fichier rsyncd.conf se trouvant sur la machine à sauvegarder.<br><br> - Pour les machines Windows indiquer C:\\\BCDI;D:\\\mon_repertoire. Les fichiers systèmes en utilisation, ne peuvent pas être sauvegardés.')")."\"><img name=\"action_image2\" src=\"../elements/images/system-help.png\"></u> </td></tr>\n"; 312 echo "<tr><td width=\"40%\">".gettext(" Exclusions :")."</td>"; 313 echo "<td><input type=\"text\" name=\"BackupFilesExclude\" value=\"$BackupFilesExclude\" size=\"40\"> <u onmouseover=\"return escape".gettext("('Indiquer ici les exclusions. Celle-ci se font par rapport aux répertoires à sauvegarder.<br><br>Par exemple, si vous avez décidé de sauvegarder le répertoire /home et que vous ne souhaitez pas sauvegarder le sous répertoire ssh indiquer ici \'ssh\' sans indiquer le répertoire parent.<br><br>Pour les machines Windows, si vous avez indiqué C$ et que vous ne souhaitez pas sauvegarder le répertoire windows, indiquer ce répertoire dans cet espace.')")."\"><img name=\"action_image2\" src=\"../elements/images/system-help.png\"></u> </td></tr>\n"; 314 } 315 316 echo "</table>"; 317 echo "<br><br>"; 318 319 echo "<table align=center width=\"70%\" border=1 cellspacing=\"0\" cellpadding=\"0\">"; 320 echo "<tr><td colspan=\"2\" class='menuheader' height=\"30\" align=\"center\">".gettext("Configuration par défaut")."</td></tr>\n"; 321 echo "<tr><td>".gettext("Souhaitez vous utiliser <br>la configuration par défaut ?")." </td>\n"; 322 if ($defo=="") { $defo="Y"; } 323 echo "<td align=\"center\">".gettext(" Oui : ")."<input type=radio name=\"defo\" value=\"Y\""; 324 if ($defo=="Y") { echo " checked"; } 325 echo ">".gettext(" Non :")."<input type=radio name=\"defo\" value=\"N\""; 326 if ($defo=="N") { echo " checked"; } 327 echo "> <u onmouseover=\"return escape".gettext("('Si vous souhaitez une configuration particulière par machine, par rapport à la configuration générale qui s\'applique à toutes les machines.<br> Cela n\'a un sens que si vous sauvegardez plusieurs machines.')")."\"><img name=\"action_image2\" src=\"../elements/images/system-help.png\"></u> </td></tr></table>\n"; 328 } // fin de non archive 329 330 331 echo "<br><br>"; 332 echo "<center><input name=\"formsauv\" type=\"submit\" value=\"".gettext("Suite")."\"></center>"; 333 echo "</form>\n"; 334 require ("pdp.inc.php"); 335 336 } 337 ?>
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 |