Das willst Du auch nicht... / Nachfrage
bearbeitet von Jörg> > Doch, das will ich.
>
> Oh. Das solltest Du aber nicht wollen. Glaub mir: Das ist ein Error auf [OSI-Layer 9](https://de.wikipedia.org/wiki/Layer_8).
Ich verstehe nicht ganz, was Du meinst.
Das Script soll sich doch neu aufrufen, um eine eventuell vorhandene begrenzte Scriptlaufzeit zu umgehen. Oder ist das ein Trugschluß und "header:location" umgeht die Scriptlaufzeit gar nicht?
Ich habs jetzt jedenfalls ein paar mal durchlaufen lassen und es sichert alle Datenbanken sauber. Gesamtdauer ca. 4 Minuten.
Hier nochmal das Script, wie ichs nutzen möchte:
~~~ php
$sql = "SHOW DATABASES";
$dbhost = 'localhost';
$dbuser = 'Masteruser';
$dbpass = 'Masterpass';
$path = '/bla/';
$link = mysqli_connect($dbhost,$dbuser,$dbpass) or die ('Error connecting to mysql: '.mysqli_error($link).'\r\n');
if(!($result = mysqli_query($link,$sql))) {
printf("Error: %s\n",mysqli_error($link));
}
while($row = mysqli_fetch_row($result)) {
if(($row[0] != "schema") && ($row[0] != "information_schema")) {
// Liste der Datenbanken füllen
$arr_list[] = $row[0];
}
}
if(!isset($_GET['listID'])) {
$listID = 0;
} else {
$listID = $_GET['listID'];
}
if($listID < count($arr_list)) {
$dbname = $arr_list[$listID];
$db_kennzeichen = $dbname.'_'.date("d-m-Y_G:i");
system('/usr/bin/mysqldump -u'.$dbuser.' -p'.escapeshellarg($dbpass).' -h'.$dbhost.' '.$dbname.' | /bin/gzip >'.$path.'dump/'.$db_kennzeichen.'.sql.gz',$fp);
if(($fp == 0) && (false !== chmod($path.'dump/'.$db_kennzeichen.'.sql.gz',0666))) {
// echo "Daten exportiert";
} else {
echo "Es ist ein Fehler aufgetreten";
}
$listID++;
header("Location: http://mysite.bla/script.php?listID=".$listID."");
} else {
echo "fertig";
exit;
}
~~~
Jörg