[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-backup/var/www/se3/includes/ -> fonction_backup.inc.php (source)

   1  <?php
   2  
   3     /**
   4     * Librairie de fonctions utilisees par backuppc
   5    
   6     * @Version $Id: fonction_backup.inc.php 5172 2010-01-31 17:16:05Z plouf $
   7     
   8     * @Projet LCS / SambaEdu 
   9     
  10     * @Auteurs Philippe Chadefaux
  11     
  12     * @Note: Ce fichier de fonction doit etre appele par un include
  13      * 
  14  
  15     * @Licence Distribue sous la licence GPL
  16     */
  17  
  18     /**
  19  
  20     * file: fonction_backup.inc.php
  21     * @Repertoire: includes/ 
  22     */  
  23    
  24    
  25  
  26  //=================================================
  27  
  28  /**
  29  * relit la conf du fichier
  30  
  31  * @Parametres 
  32  * @Return
  33  */
  34  
  35  function umountUSB () { // relit la conf du fichier
  36      system('sudo /usr/share/se3/sbin/umountusbdisk.sh');
  37  }    
  38  
  39  //=================================================
  40  
  41  /**
  42  * relit la conf du fichier
  43  
  44  * @Parametres
  45  * @Return
  46  */
  47  
  48  function restoreUSB () { // relit la conf du fichier
  49      system('sudo /usr/share/se3/sbin/restorebackup.sh');
  50  }    
  51  
  52  //=================================================
  53  
  54  /**
  55  * relit la conf du fichier
  56  
  57  * @Parametres
  58  * @Return
  59  */
  60  
  61  /* Force la relecture de la conf */
  62  function reloadBackuPpc () { // relit la conf du fichier
  63      exec('/usr/bin/sudo /usr/share/se3/scripts/startbackup reload');
  64  }    
  65  
  66  //=================================================
  67  
  68  /**
  69  * Stop BackupPc
  70  
  71  * @Parametres
  72  * @Return
  73  */
  74  
  75  /* Stop backuppc */
  76  function stopBackupPc () { // Stop BackupPc
  77      exec('/usr/bin/sudo /usr/share/se3/scripts/startbackup stop');
  78  }
  79  
  80  //=================================================
  81  
  82  /**
  83  *  Start BackupPc
  84  
  85  * @Parametres
  86  * @Return
  87  */
  88  
  89  function startBackupPc () { // Start BackupPc
  90      exec('/usr/bin/sudo /usr/share/se3/scripts/startbackup start');
  91  }
  92  
  93  //=================================================
  94  
  95  /**
  96  * Indique si BackupPc est lance ou pas
  97  
  98  * @Parametres
  99  * @Return
 100  */
 101  
 102  function EtatBackupPc () { // Indique si BackupPc est lance ou pas
 103      exec("/bin/ps awux",$ps);
 104      if (array_values(preg_grep("/BackupPC/",$ps))) { return 1; } else { return 0; }
 105  }    
 106  
 107  //=================================================
 108  
 109  /**
 110  * verifie l'existence des cles pour connexions ssh
 111  
 112  * @Parametres
 113  * @Return
 114  */
 115  
 116  function KeyExist () { // verifie l'existence des cles pour connexions ssh
 117      return file_exists('/var/remote_adm/.ssh/id_rsa.pub');
 118  }        
 119  
 120  //=================================================
 121  
 122  /**
 123  * Creation de la cle pour ssh
 124  
 125  * @Parametres
 126  * @Return
 127  */
 128  
 129  function CreeKey () { // Creation de la cle pour ssh
 130      if (!file_exists('/var/remote_adm/.ssh')) {
 131          mkdir("/var/remote_adm/.ssh",0744);
 132      }
 133      if (!file_exists('/var/remote_adm/.ssh/id_rsa.pub')) {
 134          exec("/usr/bin/ssh-keygen -t rsa -N '' -f /var/remote_adm/.ssh/id_rsa");
 135      }
 136  }    
 137  
 138  //=================================================
 139  
 140  /**
 141  * Retourne la valeur de la variable $Name contenu dans config.pl
 142  
 143  * @Parametres
 144  * @Return
 145  */
 146  
 147  function variables($Name,$HostServer) { // Retourne la valeur de la variable $Name contenu dans config.pl
 148          if($HostServer=="") {
 149             $filename="/etc/backuppc/config.pl";
 150      } else {
 151             $filename="/etc/backuppc/".$HostServer.".pl";
 152      }
 153  
 154      if (file_exists("$filename")) { //Si le fichier existe on recherche les valeurs
 155               $lignes = file("$filename");
 156               foreach ($lignes as $num => $ligne) {
 157                     if (preg_match ("/$Conf{$Name}.*=(.*);/",$ligne, $reg)) {
 158               if (preg_match ("/\[(.*)\]/",$reg[1],$reg2)) {
 159                   $variable = trim ($reg2[1]);
 160                  return $variable;
 161                  }       
 162                       if (preg_match("/'(.*)'/",$reg[1],$reg2)) {
 163                          $variable = trim($reg2[1]);
 164                         return $variable;
 165                   }
 166               $variable = trim($reg[1]);    
 167               return $variable;     
 168                       }
 169               if (preg_match ("/$Name.*=>(.*),/",$ligne,$reg)) {
 170                   $variable = trim($reg[1]);
 171                   return $variable;
 172              }    
 173               }
 174      }
 175  }
 176  
 177  //=================================================
 178  
 179  /**
 180  * retourne 1 si une machine existe dans le fichier hosts
 181  
 182  * @Parametres
 183  * @Return
 184  */
 185  
 186  function HostExist($HostServer) { //retourne 1 si une machine existe dans le fichier hosts
 187  // verifier si HostServer ne peut pas etre plus precis
 188      $filehost = '/etc/backuppc/hosts';
 189      $lignes = file("$filehost");
 190      foreach ($lignes as $num =>$line) {
 191          if (preg_match("/^$HostServer\s+/i",$line)) {
 192              return true;
 193          } 
 194      }
 195      return false;
 196  }
 197  
 198  //=================================================
 199  
 200  /**
 201  * Ajoute une machine dans le fichier hosts, retourne 0 si probleme
 202  
 203  * @Parametres
 204  * @Return
 205  */
 206  
 207  function AjoutHosts($HostServer,$dhcp,$TypeServer) { // Ajoute une machine dans le fichier hosts, retourne 0 si probleme
 208      $filehost = '/etc/backuppc/hosts';
 209      $fp = fopen($filehost,"a+");
 210      if (!HostExist($HostServer)) {
 211          $ligne = "$HostServer \t $dhcp \t backuppc \t # $TypeServer\n";
 212          fwrite($fp, $ligne);
 213  //        if (fwrite($fp,$ligne)== FALSE) {
 214  //            return 0;
 215  //        }
 216      }
 217      fclose($fp);
 218  }
 219  
 220  //=================================================
 221  
 222  /**
 223  * Detruit une entree dans le fichier hosts
 224  
 225  * @Parametres
 226  * @Return
 227  */
 228  
 229  function DeleteHost($HostServer) { // Detruit une entree dans le fichier hosts
 230        $filehost = "/etc/backuppc/hosts";
 231        $filehost_tmp = $filehost.".tmp";
 232        if (file_exists($filehost)) { //On vire la machine dans le fichiers hosts
 233               $fp = fopen("$filehost","r");
 234               $fp_tmp = fopen("$filehost_tmp","w");
 235               while (!feof($fp)) {
 236                    $ligne = fgets($fp,1098);
 237                    if (!preg_match("/^$HostServer\s+/i",$ligne)) {
 238                          fwrite($fp_tmp,$ligne);
 239                    }
 240               }
 241               fclose($fp);
 242               fclose($fp_tmp);
 243               copy($filehost_tmp,$filehost);
 244               unlink($filehost_tmp);
 245        }
 246  }
 247  
 248  //=================================================
 249  
 250  /**
 251  * Retourne la conf du dhcp 0 ou 1
 252  
 253  * @Parametres
 254  * @Return
 255  */
 256  
 257  function GetDhcp($HostServer) { // Retourne la conf du dhcp 0 ou 1
 258      $filehost = "/etc/backuppc/hosts";
 259      $lignes = file("$filehost");
 260      $expr = "/^$HostServer\s+([01])/";
 261      foreach ($lignes as $num => $line) {
 262          if (preg_match($expr,$line,$regs)) {
 263              return trim($regs[1]);
 264              
 265          }
 266      }
 267  }    
 268  
 269  //=================================================
 270  
 271  /**
 272  * retourne quand il est indique le type de serveur
 273  
 274  * @Parametres
 275  * @Return
 276  */
 277  
 278  function GetTypeServer($HostServer) { // retourne quand il est indique le type de serveur
 279      $filehost = "/etc/backuppc/hosts";
 280      $lignes = file("$filehost");
 281      $expr = "/^$HostServer\s+.*[#]\s+(.*)/";
 282      foreach ($lignes as $num => $line) {
 283          if (preg_match($expr,$line,$regs)) {
 284              return trim($regs[1]);
 285          }
 286      }
 287  }    
 288  
 289  //=================================================
 290  
 291  /**
 292  * Detruit le reertoire de la sauvegarde de la machine HostServer
 293  
 294  * @Parametres
 295  * @Return
 296  */
 297  
 298  function DeleteRep($HostServer) { // Detruit le repertoire de la sauvegarde de la machine HostServer
 299      $dir_backup="/var/lib/backuppc/pc/";
 300      if($HostServer=="") {
 301          return;
 302      }
 303      $rep = $dir_backup.$HostServer;
 304      if(is_dir($rep)) {
 305              $cmd="/usr/bin/sudo /usr/share/se3/scripts/move_rep_backuppc.sh delete ".$HostServer;
 306              exec($cmd);
 307           }
 308  }    
 309  
 310  //=================================================
 311  
 312  /**
 313  * Test si backuppc est installe en local sur un Se3 ou un Slis ou une machine dediee
 314  
 315  * @Parametres
 316  * @Return
 317  */
 318  
 319  function TypeMachine() { // Test si backuppc est installe en local sur un Se3 ou un Slis ou une machine dediee
 320      if(is_dir("/usr/share/se3")) {
 321          return Se3;
 322      }    
 323      if(file_exists("/etc/version_slis")) {
 324          return Slis;
 325      }
 326      if(is_dir("/usr/share/lcs")) {
 327          return Lcs;
 328      }    
 329  }    
 330  
 331  //=================================================
 332  
 333  /**
 334  * active ou desactive la sauvegarde
 335  
 336  * @Parametres
 337  * @Return
 338  */
 339  
 340  function Desactive($HostServer,$Etat) { // active ou desactive la sauvegarde
 341      $filehost="/etc/backuppc/".$HostServer.".pl";
 342      $fp=fopen("$filehost","rb");
 343      $cont = fread($fp, filesize($filehost));
 344      fclose ($fp);
 345      
 346      $mod = "/[\$]Conf\{FullPeriod\}\s*=\s*(.+);/";
 347      if ($Etat == "1") {
 348          $mod_chang="";
 349      } else {    
 350          $mod_chang = "\$Conf{FullPeriod} = $Etat;";
 351      }
 352      if(preg_match($mod,$cont)) {
 353          $cont = preg_replace($mod,$mod_chang,$cont);
 354          $fp = fopen("$filehost","w");
 355          fwrite($fp,$cont);
 356          fclose ($fp);        
 357      } else {
 358          $fp = fopen("$filehost","w");
 359          fwrite($fp,$cont);
 360          fwrite($fp,$mod_chang);
 361          fclose ($fp);    
 362      }    
 363  }
 364  
 365  //=================================================
 366  
 367  /**
 368  * Recherche si la sauvegarde pour $HostServer est active
 369  
 370  * @Parametres
 371  * @Return
 372  */
 373  
 374  function EtatDesactive($HostServer) { // Recherche si la sauvegarde pour $HostServer est active
 375      $filehost="/etc/backuppc/".$HostServer.".pl";
 376      $fp=fopen("$filehost","rb");
 377      $cont = fread($fp, filesize($filehost));
 378      fclose ($fp);
 379      
 380      $mod = "/[\$]Conf\{FullPeriod\}\s*=\s*(-1);/";
 381  
 382      if(preg_match($mod,$cont)) {
 383          return true;
 384      } else {
 385          return false;
 386      }
 387  }
 388  
 389  //=================================================
 390  
 391  /**
 392  * //vire les / lorsqu'ils sont en double ou triple
 393  
 394  * @Parametres
 395  * @Return
 396  */
 397  
 398  function stripslashes2($valeur) { //vire les / lorsqu'ils sont en double ou triple
 399      $valeur = str_replace("\\\\'","'",$valeur);
 400      $valeur = str_replace("\\'","'",$valeur);
 401      $valeur = str_replace("'\\\\","'\\",$valeur);
 402      $valeur = stripslashes($valeur);
 403      return $valeur;
 404  }
 405  
 406  //=================================================
 407  
 408  /**
 409  *  deplace le repertoire de sauvegarde $drive vers $space
 410  
 411  * @Parametres
 412  * @Return
 413  */
 414  
 415  function MoveRep($drive,$space) { // deplace le repertoire de sauvegarde $drive vers $space
 416      $cmd="/usr/bin/sudo /usr/share/se3/scripts/move_rep_backuppc.sh ".$drive." ".$space;
 417      exec($cmd);
 418  }    
 419  
 420  //=================================================
 421  
 422  /**
 423  * Verifie la coherence entre le fichier host et la presence du fichier machine.pl
 424  
 425  * @Parametres
 426  * @Return
 427  */
 428  
 429  function HostCoherence() { // Verifie la coherence entre le fichier host et la presence du fichier machine.pl
 430      $filehost = '/etc/backuppc/hosts';
 431      $lignes = file("$filehost");
 432      foreach ($lignes as $num =>$line) {
 433          if (!preg_match("/^#|^host\s+|^$/",$line)) {
 434                  preg_match("/(.*)\s+[01].*/",$line,$reg);
 435                  $host=trim($reg[1]);
 436                  $fichier = "/etc/backuppc/".$host.".pl";
 437                  if(!file_exists("$fichier")) {
 438                      DeleteHost($host);
 439                  }    
 440          }
 441          
 442      }
 443  }
 444  
 445  //=================================================
 446  
 447  /**
 448  * Test si l'interface a bien les droits pour ecrire dans le repertoire
 449  
 450  * @Parametres : le répertoire a tester
 451  * @Return : true si on a bien le droit d'ecrire, false sinon.
 452  */
 453  
 454  function TestEcrire($repertoire) { // Test si ww-se3 a bien les droits pour ecrire dans le repertoire
 455      $ok = true;
 456      $nom_fichier = "$repertoire/test.tmp";
 457      $f = @fopen($nom_fichier,"w");
 458      if (!$f) $ok = false;
 459      elseif (!@fclose($f)) $ok = false;
 460      elseif (!@unlink($nom_fichier)) $ok = false;
 461      return $ok;
 462  }    
 463  
 464  ?>


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