Mi ten kod działał. Ale zrobiłem mała przeróbkę, aby pokazał ewentualny bład :>
Zamień:
system(sprintf(
'mysqldump --opt -h %s -u %s -p%s %s | gzip > %s/%s/%s-%s-%s-%s.gz',
$host,
$user,
$pass,
$db,
getenv('DOCUMENT_ROOT'),
$backupdir,
$db,
$day,
$month,
$year
)); Na:
$descriptorspec = array(
2 => array("pipe", "w") // stderr is a file to write to
);
$process = proc_open(sprintf('mysqldump --opt -h %s -u %s -p%s %s | gzip > %s/%s/%s-%s-%s-%s.gz', $host, $user, $pass, $db, getenv('DOCUMENT_ROOT'), $backupdir, $db, $day, $month, $year), $descriptorspec, $pipes);
if ($process)
{
$stderr = stream_get_contents($pipes[2]);
if ($stderr)
{
stderr('Blad', $stderr);
}
}
Dopisz też na poczatku pliku, zaraz za <?
set_time_limit(0);