Mapa weba | Pretraga:

PHP klasa za izradu backupa MySQL baze/baza (predviđena za CRON upotrebu). Direktorij u kojoj se koristi klasa mora biti rwx rx rx (755) jer se u suprotnom pojavi Internal server error (500). Ukoliko je server drugačije konfiguriran, onda je potrebno da direktorij ima rwxrwxrwx (777) prem.

Nakon što se skripta uspješno izvrši, napraviti će novi direktorij naziva dan-mjesec-godina u koji će spremiti gzip-ane SQL dumpove.

Licenca je GPL.

Download PHP class


  1. <?php
  2.  
  3. /**
  4. * Project:     qsDBbackup
  5. * File:        qsdbbackup.class.php
  6. * Date:        29.11.2005.
  7. *
  8. * Klasa za izradu backup-a MySQL baze/baza podataka.
  9. * Primjer:
  10. *
  11. *      require('qsdbbackup.class.php');
  12. *      $backup = new qsDBbackup;
  13. *      $backup->mysql_username="myuser";
  14. *      $backup->mysql_password="mypassword";
  15. *      $backup->mysql_db = array("db1","db2","dbN");
  16. *      $backup->doBackup();
  17. *
  18. * mysql_db uvijek mora biti array! Ako je samo jedna baza
  19. * onda je sintaksa: $backup->mysql_db = array("db");
  20. *
  21. * Output ([datum]=D-M-Y):
  22. * ./[datum]/[db_name].sql-[datum].gz
  23. *
  24. * @link http://www.quercus-lab.com/dokumenti/qsdbbackup/
  25. * @copyright 2005-2006 Quercus Lab
  26. * @author Davorin Vlasic <davorin (aa) quercus-lab (..) com>
  27. * @package qsDBbackup
  28. * @version 0.1
  29. */
  30.  
  31.     class qsDBbackup {
  32.                            
  33.         var $mysql_username;    // @var string
  34.         var $mysql_password;    // @var string
  35.         var $mysql_db;          // @var array
  36.        
  37.         function doBackup() {
  38.            
  39.             if(
  40.                 !$this->mysql_username
  41.                 || !$this->mysql_password
  42.                 || !$this->mysql_db
  43.               ){
  44.                
  45.                 // niste podesili parametre (user,pass,db)
  46.                 return -1;
  47.                
  48.             } else {
  49.                
  50.                 $mysql_user=$this->mysql_username;
  51.                 $mysql_pass=$this->mysql_password;
  52.                 $db_name_arr=$this->mysql_db;
  53.                                
  54.                 for($i=0;$i<count($db_name_arr);$i++){
  55.                    
  56.                     $db_name=$db_name_arr[$i];
  57.                             
  58.                     $cmd_dump="mysqldump -u$mysql_user -p$mysql_pass $db_name
    > $db_name.sql"
    ;
  59.                     $cmd_gzip="gzip $db_name.sql";
  60.                     $cmd_mkdir="mkdir `/bin/date +%d-%m-%Y`";
  61.                     $cmd_mv="mv $db_name.sql.gz `/bin/date +%d-%m-%Y`/`/bin
    /date +$db_name.sql-%d%m%Y.gz`"
    ;
  62.                     
  63.                     $izlaz  = exec($cmd_dump);
  64.                     $izlaz .= exec($cmd_gzip);
  65.                     $izlaz .= exec($cmd_mkdir);
  66.                     $izlaz .= exec($cmd_mv);
  67.                    
  68.                 }
  69.                     
  70.                 return $izlaz;
  71.                
  72.             }
  73.            
  74.         }
  75.        
  76.     }
  77.  
  78. ?>
Ispiši stranicu Pošalji stranicu prijatelju PHP Smarty Postgres Apache