Hallo,
heute mal was anderes:
Ich habe auf auf dem Webserver des ISP eine msql-Datenbank am laufen. Da ich den Backups dort nicht so recht traue, habe ich mir ein Perl-Script gebaut, welches täglich einen Datenbankdump macht und mir als Attachment zuschickt (is noch nicht so groß). Das ganze sieht so aus:
------------------------------------------------------------------------ - #!/usr/bin/perl -w
use /home/imdd/vhost/elbvilla/perl_modules/MIME::Lite; #selbstkompiliert in ~ $database="wohndb"; $datum = time(); $anfangszeit = localtime(); $path="../dump/wohndb_dump_$datum";
system ("msqldump wohndb > $path"); system ("gzip -9 $path");
$endzeit = localtime();
$mail = MIME::Lite->new( From => 'wohnungsmarkt-dresden.de', To => 'puru@elbvilla.de', Subject => "Backup der Datenbank $database", Type => "multipart/mixed");
$mail->attach( Type => 'text/plain', Data => "Datenbankbackup von Wohnungsmarkt-Dresden. Das Backup hat begonnen um $anfangszeit und wurde beendet um $endzeit." );
$mail->attach( Type => 'application/zip', Path => "$path.gz", Encoding => 'base64');
$mail->send(); ------------------------------------------------ Rufe ich das Script local (auf dem Server) auf, klappt es wunderbar, und ich erhalte auch die Mail mit dem gewünschten Attachment. Allerdings meckert Mime::Lite:
Ambiguous call resolved as CORE::binmode(), qualify as such or use & at /home/imdd/vhost/elbvilla/perl_modules/MIME/Lite.pm line 1154. Ambiguous call resolved as CORE::binmode(), qualify as such or use & at /home/imdd/vhost/elbvilla/perl_modules/MIME/Lite.pm line 1343.
Da bin ich erst mal ratlos, denn es tuts trotzdem richtig (Ich nehme aber kein zig-tausend Zeilen langes Modul auseinander, dafür bin ich zu blond). Rufe ich das ganze aber via cron auf, erhalte ich auch die Mail mit Anhang, aber das Archiv darin ist LEER (0 Byte), hat aber die richtige Bezeichnung! (wohndb_dump_12345678944.gz)
Mein cronfile auf dem Server:
elbvilla@server1:~ > less cronfile 0-59/15 * * * * /home/imdd/vhost/elbvilla/system/check_db 2> /dev/null 0 3 * * * /home/imdd/vhost/elbvilla/system/dump.pl 2> ~/logs/dump_log
In ~/logs/dump_log steht nix, das file wird garnicht erst angelegt. Und aufs syslog habe ich leider keinen Zugriff.
Wie stehe ich denn nun da? Hat jemand einen Tip?
Jens
On Thu, Feb 10, 2000 at 12:23:23PM -0000, Jens Puruckherr wrote: : Hallo, : : heute mal was anderes: : : Ich habe auf auf dem Webserver des ISP eine msql-Datenbank am laufen. Da : ich den Backups dort nicht so recht traue, habe ich mir ein Perl-Script : gebaut, welches täglich einen Datenbankdump macht und mir als Attachment : zuschickt (is noch nicht so groß). Das ganze sieht so aus: : : ------------------------------------------------------------------------ : - : #!/usr/bin/perl -w : : use /home/imdd/vhost/elbvilla/perl_modules/MIME::Lite; #selbstkompiliert : in ~ : $database="wohndb"; : $datum = time(); : $anfangszeit = localtime(); : $path="../dump/wohndb_dump_$datum"; : : system ("msqldump wohndb > $path"); : system ("gzip -9 $path");
-> warum nicht:
system("msqldump wohndb | gzip -9 > $path.gz");
: $endzeit = localtime(); : : $mail = MIME::Lite->new( : From => 'wohnungsmarkt-dresden.de', From => 'db@wohnungsmarkt-dresden.de', ~~~
: Rufe ich das Script local (auf dem Server) auf, klappt es wunderbar, und : ich erhalte auch die Mail mit dem gewünschten Attachment. : Allerdings meckert Mime::Lite: : : Ambiguous call resolved as CORE::binmode(), qualify as such or use & at : /home/imdd/vhost/elbvilla/perl_modules/MIME/Lite.pm line 1154. : Ambiguous call resolved as CORE::binmode(), qualify as such or use & at : /home/imdd/vhost/elbvilla/perl_modules/MIME/Lite.pm line 1343.
Kann sein, dass der Autor von Lite.pm von bimode() im PerlCORE nichts wusste (vielleicht gab's das damals noch nicht). Schaum mal im Lite.pm nach, wo dort ueberall `binmode' auftaucht. Wenn's auch als Funktion definiert ist, dann hilft moeglicherweise wirklich ein &binmode(....) beim Aufruf.
Oder Du beseitigst die Definition von sub bimode(.....) aus Lite.pm, denn es ist jetzt Bestandteil von PerlCore.
: Rufe ich das ganze aber via cron auf, erhalte ich auch die Mail mit : Anhang, aber das Archiv darin ist LEER (0 Byte), hat aber die richtige : Bezeichnung! (wohndb_dump_12345678944.gz)
Ich denke, PATH ist anders als wenn Du eingeloggt bist. Hat mit dem o.g. Fehler nichts zu tun.
Mach doch mal * * * * * echo "$PATH" | mail -s path puru@elbvilla.de
Und vergleiche das mit dem PATH wenn Du eingeloggt bist.
: elbvilla@server1:~ > less cronfile : 0-59/15 * * * * /home/imdd/vhost/elbvilla/system/check_db 2> /dev/null : 0 3 * * * /home/imdd/vhost/elbvilla/system/dump.pl 2> ~/logs/dump_log : : In ~/logs/dump_log steht nix, das file wird garnicht erst angelegt. Und
Ich zweifle daran, dass ~ aufgeloest wird in der Crontab. Per Default laufen die Cronjobs in Deinem $HOME, denke ich, also reicht 2>logs/dump.log
Heiko
lug-dd@mailman.schlittermann.de