Fehlermeldung bei PERL Script (Datenbankbackup)

Erazor
Hallo zusammen,

Meine Datenbank wurde seit Monaten immer mit einem Aufruf von einem Perl Script auf den Server gesichert. (Mit Hilfe eines Cron-Jobs) Seit knapp 6 Wochen erhalte ich nun per Mail immer die untenstehende Fehlermeldung. Die Datenbanksicherung wird aber fehlerfrei angelegt!

"500 EOF when chunk header expected"

Kann mir jemand erklären woran dies liegt? Untenstehend meine .pl Datei ohne die geheimen Daten...

code:
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:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
#!/usr/bin/perl
# BackUpScript (c) 2003 by www-jgs-xa.de
# Einstellungen
$verzeichnis_vom_backup	= "Backups/Locomotion";		# Am besten einen Ordner "backups" anlegen CMD 777 setzen und den Namen dazu hier angeben
											# dieser Name bezieht sich auf das Hauptverzeichnis der Domain, ist also nicht der
											# komplette PATH vom Server, dieser wird automatisch ausgelesen. Falls Sie den Ordner
											# für die Backups in einem Unterverzeichnis haben so geben Sie dies in diesem Format
											# an:  "unterverzeichnis/backup"  also jeweils ohne das "/" Zeichen an Anfang und Ende
$host					= "localhost";			# normaerweise localhost
$user					= "zensiert";		# Benutzername zum Login für MySQL
$passwort				= "zensiert";			# Das Passwort dafür
$dbname					= "zensiert";	# Der Name der Datenbank


####################################
# Ab hier bitte nichts mehr ändern #
####################################

# $verzeichnis_vom_backup = '$DOCUMENT_ROOT/'.$verzeichnis_vom_backup;

$verzeichnis_vom_backup = '/home/erazor/public_html/'.$verzeichnis_vom_backup;

print "Content-type: text/html\n\n";

($sec,$min,$hour,$mday,$mon,$year,$wday) = (localtime(time))[0,1,2,3,4,5,6];
$mon += 1;
$year += 1900; 

if (length($sec) == 1){$sec="0$sec";}
if (length($min) == 1){$min="0$min";}
if (length($hour) == 1){$hour="0$hour";}
if (length($mday) == 1){$mday="0$mday";}
if (length($mon) == 1){$mon="0$mon";}

$datum_zeit = "$year\-$mon\-$mday\_$hour\-$min\-$sec";

system("mysqldump --all -e -l --add-drop-table --host=$host --user=$user --password=$passwort $dbname > $verzeichnis_vom_backup/backup-$dbname-$datum_zeit.sql") == 0 or &error("Konnte Dump nicht anlegen!");
system("gzip -f $verzeichnis_vom_backup/backup-$dbname-$datum_zeit.sql") == 0 or &error("Konnte zip nicht anfertigen!");
print "Backup wurde erstellt!<br>Der Name der Backup-Datei lautet: backup-$dbname-$datum_zeit.sql.gz";
exit;


Der Supporter von meinem Webhoster konnte den Fehler leider auch nicht finden, er sei angeblich mehr auf PHP spezialisiert wie auf Perl... unglücklich

Bitte um eure Hilfe & bedanke mich im Voraus

Grüsse, Erazor
xundy
Du solltest die Ausgabe des Script abfangen, macht schließlich ekeinen Sinn ein automatisches Script ein Ausgabe per echo erzeugen zu lassen

mfg
Erazor
Huhu XundY,

Sorry aber für mich ist deine Aussage noch ein bisschen zu hochgestochen, kannst du das bitte für einen Script-Noobie erklären? Meinst du dass ich die E-Mail Benachrichtigung deaktivieren sollte?

Grüsse

Erazor
xundy
Du startest ein Script im Hintergrund diese gibt aber eine Statusmeldung auf dem Screen aus(versucht es zumindest)
"print "Content-type: text/html\n\n";" und
"print "Backup wurde erstellt!<br>Der Name der Backup-Datei lautet: backup-$dbname-$datum_zeit.sql.gz";
"
Setze vor die Zeilen ein #

dann sollte die Fehlermeldung nicht mehr kommen.

mfg
Erazor
Nun erhalte ich stets die folgende Mitteilung im Mail

Zitat:
500 Server closed connection without sending any data back


Nochmals meine nun geänderte Backup Datei.

code:
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:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
#!/usr/bin/perl
# BackUpScript (c) 2003 by www-jgs-xa.de
# Einstellungen
$verzeichnis_vom_backup	= "Backups/Locomotion";		# Am besten einen Ordner "backups" anlegen CMD 777 setzen und den Namen dazu hier angeben
											# dieser Name bezieht sich auf das Hauptverzeichnis der Domain, ist also nicht der
											# komplette PATH vom Server, dieser wird automatisch ausgelesen. Falls Sie den Ordner
											# für die Backups in einem Unterverzeichnis haben so geben Sie dies in diesem Format
											# an:  "unterverzeichnis/backup"  also jeweils ohne das "/" Zeichen an Anfang und Ende
$host					= "localhost";			# normaerweise localhost
$user					= "erazor_erazor";		# Benutzername zum Login für MySQL
$passwort				= "hg225295";			# Das Passwort dafür
$dbname					= "erazor_locoforum";	# Der Name der Datenbank


####################################
# Ab hier bitte nichts mehr ändern #
####################################

# $verzeichnis_vom_backup = '$DOCUMENT_ROOT/'.$verzeichnis_vom_backup;

$verzeichnis_vom_backup = '/home/erazor/public_html/'.$verzeichnis_vom_backup;

#print "Content-type: text/html\n\n";

($sec,$min,$hour,$mday,$mon,$year,$wday) = (localtime(time))[0,1,2,3,4,5,6];
$mon += 1;
$year += 1900; 

if (length($sec) == 1){$sec="0$sec";}
if (length($min) == 1){$min="0$min";}
if (length($hour) == 1){$hour="0$hour";}
if (length($mday) == 1){$mday="0$mday";}
if (length($mon) == 1){$mon="0$mon";}

$datum_zeit = "$year\-$mon\-$mday\_$hour\-$min\-$sec";

system("mysqldump --all -e -l --add-drop-table --host=$host --user=$user --password=$passwort $dbname > $verzeichnis_vom_backup/backup-$dbname-$datum_zeit.sql") == 0 or &error("Konnte Dump nicht anlegen!");
system("gzip -f $verzeichnis_vom_backup/backup-$dbname-$datum_zeit.sql") == 0 or &error("Konnte zip nicht anfertigen!");
#print "Backup wurde erstellt!<br>Der Name der Backup-Datei lautet: backup-$dbname-$datum_zeit.sql.gz";
exit;


Kannst du mir hier noch weiterhelfen? Wäre toll von dir!

Bedanke mich im Voraus

Grüsse, Erazor