Backup - Cronjob, PHP, Confixx

Backup, Restore und Transfer von Daten
Post Reply
dummi
Posts: 11
Joined: 2003-01-14 00:03
 

Backup - Cronjob, PHP, Confixx

Post by dummi »

Hallo Leute,

ich habe mir heute auch mal Gedanken zum Thema Backup gemacht. Ich möchte eigentlich vorerst nur alle HTML, Files und Datenbanken sichern.
Natürlich kann man das auch erweitern auf wichtige files wie apache.conf, php.ini, named.conf, Emails etc ....

Bevor ich es mache, wollte ich mal eure Meinung hören. Diese Scripte habe ich mir gerade ausgedacht und noch nicht getestet!!!
Es geht mir im Augenblick auch nur ums Prinzip.

User anlegen. Ich nenne ihn mal hier: "user"
im "user" Verzeichnis ein Verzeichnis anlegen "backup"


Cronjob: täglich um 00.15Uhr Backups in confixx eintragen.

Ich würde ein PHP-Script aufrufen zB:

Code: Select all

#! /bin/bash 
php /wo_immer_es_liegt/dateiname.php 
dateiname.php:

Code: Select all

<?

$db_ link = mysql_connect ("localhost", "mysql_conixx_user", "mysql_confixx_password")
            or die ("Ein Fehler ist aufgetreten: " .mysql_error());

## 1. Ausnahmekunden festlegen, die nicht mit ins Backup sollen hier web1 und web5
$nobackup = array ("web1", "web5");
 
## 2. Alle User suchen die über Confixx eingerichtet sind
$result = mysql_query("select kunde from kunden");
$row = mysql_fetch_row($result);

## 3. für jeden Kunden backup anfordern:

foreach ($row as $value) {
	if (in_array ($value, $nobackup) == false) {
    $result = mysql_query("INSERT INTO backup ( 'html' , 'files' , 'mysql' ) VALUES ('web3', 'web3', 'web3')");   
	}
}

## Datenbank Connection schliessen
mysql_close ($db_link);

?>
Nun würde ich eine Zeit warten, weil man ja nie genau weiss wann confixx fertig ist, und wie gross die backups sind.

Cronjob: täglich um 03.00Uhr Backups ins Backupverzeichnis kopieren (hier habe ich noch nicht so die Idee ob ich es in php machen würde.
Wenn ich es über die Shell mache, weiss ich ja im Grunde nicht welche Kunden es gibt. Oder?)

Code: Select all

#! /bin/bash 
tar -cvzf /user_verzeichnis/backup/backup_timestamp.tar.gz /home/www/und_hier_endet_mein_latein 
chown user:ftponly /user_verzeichnis/backup/backup_woche.tar.gz 
Daher evtl. doch der bessere Weg per PHP? Habt Ihr eine Idee? Kleiner Tip?

Wenn nun also alle Backups verschoben/kopiert sind, dann kann ein anderer Server die Daten herunterladen.

Cronjob: Ein Server lädt mit wget alle NEUEN Daten vom Backupverzeichnis

Code: Select all

#! /bin/bash 
wget -N ftp://user:password@domain:21/backupverzeichnis/

So in etwa sind meine Gedanken. Meint Ihr, das könnte klappen?

Gruss
Ein Dunmmi
d.m
Posts: 53
Joined: 2003-07-29 00:32
Location: Waltrop
 

Re: Backup - Cronjob, PHP, Confixx

Post by d.m »

Hi !

Warum willst Du die DB mit PHP und nicht mit mysqldump/mysqlhotcopy sichern? Speicher damit die kompl. DBs und fertig, oder seh ich das jetzt falsch?

Zum sichern:
tar -cfz /user_verzeichnis/backup/backup_timestamp.tar.gz /verzeichnis_wo_der_dump_zu_finden_ist/db_dump_datei

Die Daten würd ich allerdings nicht mit wget vom Server runterladen. Nimm lieber scp. Ist vielleicht sicherer ;-)
scp user@server:/home/user/backup/backup.tar.gz . (also in ein Verzeichnis auf dem neuen Server) .
dummi
Posts: 11
Joined: 2003-01-14 00:03
 

Re: Backup - Cronjob, PHP, Confixx

Post by dummi »

Zweck, warum ich das Confixx Tool nutzen möchte um die Datenbank zu sichern ist, dass ich dann ggf. einfach die Backups in die Verzeichnisse schieben muss, und der "kunde/user" sein Backup auf eigene Gefahr wieder restoren kann.

Dann kann ich sagen:
Ja ein Backup mache ich, aber einspielen musst/kannst Du es selber über confixx.

cfz muss ich mir mal anschauen, was genau der Unterschied ist.

Danke für den Tip.
Post Reply