Webdesign-Forum

Antworten auf alltägliche Fragen im Webdesign und der Internet-Programmierung
MySQL Datenbank BackUp mit Cronjob

 
Neues Thema eröffnen   Neue Antwort erstellen    Webdesign-Forum Foren-Übersicht -> Internet-Tools
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
gero



Anmeldedatum: 19.10.2006
Beiträge: 20

BeitragVerfasst am: 10.12.2008, 19:27    Titel: MySQL Datenbank BackUp mit Cronjob Antworten mit Zitat

Download

Dieses Skript erstellt mit Hilfe von Cronjobs automatische Backups (auf Wunsch gzip) und legt diese auf den Server ab. Auf Wunsch werden die ZIP-Dateien auch an eine E-Mail gesendet. Es können auch mehrere Datenbanken angegeben werden. Für MySQL Version 4 und 5 sind einige Einstellungen vor und nach dem Setup notwendig.
Ausserdem ist das Skript wahrscheinlich stark von den jeweiligen Providereinstellungen abhängig.
Erklärung basiert auf Installation bei dF Reseller, MySQL 5 DB.

1. Download und Entpacken

2. setup.php öffnen - Zeile 12 - Host bei Bedarf ändern - die Angabe des Hosts wurde in der Setuproutine wohl vergessen

3. Alle Dateien hochladen - Ordner auf CHMOD777 - setup.php ausführen

4. Die Setup-Schritte sind selbsterklärend. Ich hab die Erfahrung gemacht das einige Einstellungen nich übernommen wurden. Diese können aber später in der config Datei vorgenommen werden

5. Nach dem Setup die config.php öffnen
das Array $_DB muss um einen key "HOST" mit folgenden Werten erweitert werden:
mysql3: 'localhost' (oder 127.0.0.1)
mysql4: '127.0.0.2'
mysql5: '127.0.0.3'
also ans ende der datei z.b.: $_DB[0]['HOST'] = '127.0.0.2';

6. In der Datei cron.php:
Die Funktion makebackup() sieht so aus:

Code:

function makeBackup() {
            foreach($this->_DB as $key=>$value) {
                  $this->makeSqlDump($this->_DB[$key]['HOST'], $this->_DB[$key]['NAME'], $this->_DB[$key]['USER'], $this->_DB[$key]['PASS']);
                  }
            if($this->_CONFIG['SAVEFILE_DAYS']>0) $this->deleteOldBackups();
            if($this->_CONFIG['REMOTE']=='email') $this->emailFile();
            if($this->_CONFIG['REMOTE']=='ftp') $this->ftpFile();
            $this->saveLog();
      }


Die Funktion makeSqlDump() sieht so aus:
Code:

function makeSqlDump($db_host, $db_name, $db_uname, $db_pass) {
            $fileName = sprintf("%s/%s_%s.%s", $this->_CONFIG['SAVEFILE_PATH'], $db_name, date('Y-m-d'), $this->_CONFIG['GZIP'] ? 'sql.gz': 'sql');
            if(is_file($fileName)) unlink($fileName);
            $sys = sprintf("%s %s%s%s%s %s --user %s --password=%s -B %s %s> %s",
                  $this->_CONFIG['MYSQLDUMP_PATH'],
                  $this->_CONFIG['MYSQLDUMP_QUICK'] ? '-q ' : '',
                  $this->_CONFIG['MYSQLDUMP_ADD_DROP_TABLE'] ? '--add-drop-table ' : '',
                  $this->_CONFIG['MYSQLDUMP_EXTENDED_INSERT'] ? '-e ' : '-c ',
                  $this->_CONFIG['MYSQLDUMP_LOCK_TABLES'] ? '--add-locks ' : '',
                  $db_host ? '--host ' . $db_host : false,
                  $db_uname,
                  $db_pass,
                  $db_name,
                  $this->_CONFIG['GZIP'] ? '| gzip' : '',
                  $fileName
                 );
            exec($sys);
            array_push($this->_gz, $fileName);
            $this->addLog(sprintf("Database %s saved as %s", $db_name, basename($fileName)));
      }


ich denk daas müsste alles gewesen sein. den link zum thema gibts hier
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
gero



Anmeldedatum: 19.10.2006
Beiträge: 20

BeitragVerfasst am: 10.12.2008, 19:31    Titel: Antworten mit Zitat

unter domaingo funktioniert das skript ebenfalls
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Webdesign-Forum Foren-Übersicht -> Internet-Tools Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de
RedSilver 1.03 Theme was programmed by DEVPPL JavaScript Forum
Images were made by DEVPPL Flash Games