Hi,
Die Mail hängt nicht vom Vorhandensein von Variablen ab. Sie kommt durch eine Ausgabe zustande, wobei exec() allein nichts ausgibt.
Ich finde das auch merkwürdig aber wenn ich die $output von exec mit unset lösche, dann kommt keine Email mehr.
Sieht nach keinen Fehlern aus. Was ist denn der aktuelle Stand? Wird das Backup über Cronjob erzeugt oder nur beim Direktaufruf an der Kommandozeile?
Der Cronjob wird mit folgendem Script komplett, fehlerfrei und ohne eine Email ausgeführt:
<?php
set_time_limit(900); // 15 Minuten maximal ausführen
error_reporting(E_ALL); // Errors melden
ini_set("display_errors", 'ON'); // Errors per E-Mail versenden
$timestamp=time();
$datum = date("Y.m.d",$timestamp);
$uhrzeit = date("H:i:s",$timestamp);
$jetzt=$datum.'-'.$uhrzeit;
$datei = fopen("/var/www/log","a");
fwrite($datei, "\n ### ".$jetzt.": ");
fwrite($datei, "MySQL-Backup:");
$dumpuser = "admin";
$dumppass = "*****";
$dumpbase = "bg_main";
$pfad = "/var/www/mysql-backup/";
exec( "mysqldump --user=$dumpuser --password=$dumppass --add-drop-table $dumpbase >\"" . $pfad.$dumpbase . " - " . $jetzt . ".sql\"", $output);
unset($output);
rewind($datei);
fwrite($datei, " abgeschlossen! ");
// Später kommen hier noch weitere Funktionen hin
fclose($datei);
exit();
?>
Am typischen Rechnernamen erraten, den du in einem deiner Postings gecopy'n'pastet hast.
Aha.
Für mich wäre das Problem dann soweit abgeschlossen, denn ich bin mit dem Script zufrieden. Wenn du daran noch irgendetwas auszusetzen hast sag es, bitte.
Ansonsten noch vielen Dank an alle, die mir bei der Lösung des Problemes geholfen haben.
bruno1
P.S. Nur falls es dich interessiert, in Prallels Small Business 10 kann man über "Server", "Erweiterte Einstellungen" und "Geplante Aufgaben" die Cronjobs für alle Benutzer konfigurieren.
Hier eine Liste aller Benutzer:
adm
apache
bin
daemon
dbus
distcache
drweb
ftp
games
gopher
halt
lp
mail
mailnull
mhandlers-user
mysql
named
news
nobody
nscd
ntp
operator
pcap
popuser
postfix
psaadm
psaftp
root
rpc
shutdown
smmsp
sshd
sw-cp-server
sync
uucp
vcsa
Meine ist jetzt bei root eingetragen, welchen Benutzer müsste ich denn nehmen, um den Cronjob als "normaler" User auszuführen?