Datenbanksicherung

Agi
Abend

Ich würde ein Script suchen, das man per Cronjob aufrufen kann und das dann die Datenbank automatisch sichert, am besten in einen eigenen Ordner auf den Server
ShadowByte
Hallo

Ich mache das mit folgendem Skript:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:

<?php

  $now time();
  $diff 5*86400;
  $t $now-$diff;
  $old date("d.m.y"$t);

  if(file_exists("./dumps/".$old)) {
    $handle opendir("./dumps/".$old);
    while ($file readdir ($handle)) {
      if ($file != ".." && $file != ".")
        unlink("./dumps/".$old."/".$file);
    }
    rmdir("./dumps/".$old);
  }
  if(!file_exists("./dumps/".date("d.m.y"))) {
    mkdir("./dumps/".date("d.m.y"));
    chmod("./dumps/".date("d.m.y"), 0777);
  }

  exec("mysqldump -a -c -q -Q -f --add-drop-table --allow-keywords --password=GANZGEHEIM -h localhost -u DBUSER DATENBANKNAME | gzip -c > /www/htdocs/pfad/zum/Ordner/dumps/".date("d.m.y")."/sqldump_$(date \"+%d.%m.%y_%H.%M\").sql.gz");

?>


Es wird ein Ordner für jeden Tag erstellt und Ordner älter wie 5 Tage werden wieder gelöscht.

Ich habe im selben Ordner wie dieses Skript einen Ordner dumps/ mit den Attributen 0777.
Es ist auch dazu zu raten den Ordner wo das Skript drin per .htaccess zu schützen ....


Gruß
Agi
vielen Dank, super Support

Werds gleich mal ausprobieren cool

//Edit: Hmm also habs jetzt ausprobiert, alles so ausgefüllt, dass es korrekt sein sollte (Zugriffsdaten), er erstellt zwar nen Ordner mit dem heutigen Datum, aber keine DB Sicherung darin
ShadowByte
Haste auch hier in der Zeile alles richtig editiert ?

php:
1:
exec("mysqldump -a -c -q -Q -f --add-drop-table --allow-keywords --password=GANZGEHEIM -h localhost -u DBUSER DATENBANKNAME | gzip -c > /www/htdocs/pfad/zum/Ordner/dumps/".date("d.m.y")."/sqldump_$(date \"+%d.%m.%y_%H.%M\").sql.gz");


Editieren mußt Du hier:
GANZGEHEIM
DBUSER
DATENBANKNAME
/www/htdocs/pfad/zum/Ordner/dumps/

Es kann natürlich auch sein, daß bei Dir exec() / system() usw. gesperrt ist....
kokolores
Supi-Idee... habs gleich ausprobiert... allerdings ist die erstellte Datei leer....
Agi
Zitat:
Original von ShadowByte
Haste auch hier in der Zeile alles richtig editiert ?

php:
1:
exec("mysqldump -a -c -q -Q -f --add-drop-table --allow-keywords --password=GANZGEHEIM -h localhost -u DBUSER DATENBANKNAME | gzip -c > /www/htdocs/pfad/zum/Ordner/dumps/".date("d.m.y")."/sqldump_$(date \"+%d.%m.%y_%H.%M\").sql.gz");


Editieren mußt Du hier:
GANZGEHEIM
DBUSER
DATENBANKNAME
/www/htdocs/pfad/zum/Ordner/dumps/


Ja hab ich, extra nochmal nachgeschaut

Zitat:
Es kann natürlich auch sein, daß bei Dir exec() / system() usw. gesperrt ist....


werd meinen Server Admin mal danach fragen
kokolores
SO - hier gehts.... *kopfklatsch...*

nix LOCALHOST....... natürlich HOSTNAME von DB...... Freude
Agi
Zitat:
Original von kokolores
SO - hier gehts.... *kopfklatsch...*

nix LOCALHOST....... natürlich HOSTNAME von DB...... Freude


und wo find ich den? ^^
kokolores
Schau mal in deine configinc.php im acp/lib-Verzeichnis:
$sqlhost = "xyz.de";


...oder ähnlich.
Agi
Zitat:
Original von kokolores
Schau mal in deine configinc.php im acp/lib-Verzeichnis:
$sqlhost = "xyz.de";


...oder ähnlich.


ja das ist localhost bei mir
naja geht noch immer nicht, werd den server admin morgen fragen, wegen dem Dir exec() / system() usw

Gibts da vlt ne Möglichkeit, zu testen ob das geht oder nicht?
kokolores
Passiert GAR nix oder bekommt du ne leere Datei?

Das hier

"/www/htdocs/pfad/zum/Ordner/dumps/" muss man im Zweifel auch noch anpassen.....

bei mir wars /23856583224/blahblah/htdocs/..../../


EDIT:

Leere Datei erhalten -> Pfad stimmt, DB HostName war falsch

NIX -> Pfad zu /dumps stimmt nicht.
Agi
Zitat:
Original von kokolores
Passiert GAR nix oder bekommt du ne leere Datei?

Das hier

"/www/htdocs/pfad/zum/Ordner/dumps/" muss man im Zweifel auch noch anpassen.....

bei mir wars /23856583224/blahblah/htdocs/..../../


EDIT:

Leere Datei erhalten -> Pfad stimmt, DB HostName war falsch

NIX -> Pfad zu /dumps stimmt nicht.



ich erhalte nur nen ordner mti dem aktuellen Datum wo nix drinnen ist
Der Pfad zu dumps stimmt auch, hab ich getestet, seltsam ...