Doch, das will ich.
Oh. Das solltest Du aber nicht wollen. Glaub mir: Das ist ein Error auf OSI-Layer 9.
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.
An dieser Stelle übrigens danke für die Tips! 👍
Hier nochmal das Script, wie ichs nutzen möchte:
$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