Backup Script schlägt fehl

Bash, Shell, PHP, Python, Perl, CGI
klerfrq
Posts: 38
Joined: 2004-08-04 19:54

Backup Script schlägt fehl

Post by klerfrq » 2009-02-04 11:53

Hallo,

ich lasse täglich einen Confixx Server mit dem integrierten Confixx Backup sichern und es erfolgt folgende Meldung per Mail:

Code: Select all

/usr/bin/split -b 2040m - /home/backup/confixx/bckp_FMdPfx/files/user/web30.tgz.': Cannot allocate memory
Error: unable to run command: '/bin/tar -cz -C /home/htdocs/web31 files html log backup restore |


Die Fehlermeldung besagt, dass kein RAM mehr zur Verfügung steht. Der Job wird per cron um 8 Uhr ausgeführt.

Führe ich den Job um die selbe Uhrzeit an der Konsole mit dem gleichen Benutzer aus - so läuft das Backup einwandfrei durch.


Mir ist eigentlich kein Unterschied zwischen Cron und Konsole bekannt - aber warum läuft der Job nur dann erfolgreich durch, wenn ich den Job selber ausführe. Stoße ich den Cronjob manuell an - so läuft er auch nicht durch.

Danke & Gruß
klerfrq

User avatar
daemotron
Administrator
Administrator
Posts: 2800
Joined: 2004-01-21 17:44

Re: Backup Script schlägt fehl

Post by daemotron » 2009-02-04 12:58

Welches OS/welchen Kernel nutzt Du?

Der Fehler besagt, dass split bei einem malloc() oder realloc() auf die Schnauze fällt. Das kann bedeuten, dass der Kernel keinen weiteren Speicher mehr zugeteilt hat, kann aber auch ein Programmierfehler sein, der zu einem NULL Pointer führt. Wenn ersteres der Fall ist, kann es auch Zufall gewesen sein, dass Konsole ging und Cron nicht. Hast Du schon mal versucht, die "Portionsgröße" für split ein bisschen zu reduzieren?

klerfrq
Posts: 38
Joined: 2004-08-04 19:54

Re: Backup Script schlägt fehl

Post by klerfrq » 2009-02-04 13:12

2.6.11.4-21.12-bigsmp / Suse 9.3 / interner Server

Das Confixx Backup kann ich nur anstoßen - nicht verändern.

Es lief bis vor 1 Monat jeden tag einwandfrei über Cron.

Zufall ist dies leider nicht, da ich seit Wochen jeden sehe, dass der Cron nicht durchläuft und ich den Job über Putty anstoßen muss.

User avatar
daemotron
Administrator
Administrator
Posts: 2800
Joined: 2004-01-21 17:44

Re: Backup Script schlägt fehl

Post by daemotron » 2009-02-04 13:54

OK, mit der Frage nach dem OS wollte ich nur ausschließen, dass Du irgendwelche Login Classes definiert hast, die aber nur für interaktive Shells gelten, nicht aber für Cron-Jobs (die gibt's aber AFAIK unter Linux nicht, also wahrscheinlich nicht das Problem hier ;))

Für mich sieht das so aus, als läge das Problem eventuell an der Pipe-Konstruktion. Was passiert denn genau, wenn Du folgendes auf einer interaktiven Shell laufen lässt:

Code: Select all

/bin/tar -cz -C /home/htdocs/web31 files html log backup restore | /usr/bin/split -b 2040m - /home/backup/confixx/bckp_FMdPfx/files/user/web30.tgz

klerfrq
Posts: 38
Joined: 2004-08-04 19:54

Re: Backup Script schlägt fehl

Post by klerfrq » 2009-02-04 14:20

Wird ohne Fehler ausgeführt - Ergebnis eine gepacktes Archiv.

User avatar
daemotron
Administrator
Administrator
Posts: 2800
Joined: 2004-01-21 17:44

Re: Backup Script schlägt fehl

Post by daemotron » 2009-02-04 17:19

OK, dann könnte es daran liegen, dass beim Cron zeitgleich noch andere Jobs laufen, die viel Arbeitsspeicher auffressen. Am einfachsten wäre es, mal die Crontabs aller User durchzukämmen und zu schauen, ob da irgendwas parallel läuft, was noch viel Speicher konsumiert. Wenn Dich das nicht weiter bringt, hilft es vielleicht, eine Statistik über den Speicherverbrauch zu fahren. Munin bietet dafür ein recht brauchbares Plugin; ansonsten tut's auch folgendes Shellskript:

Code: Select all

#!/bin/sh
timestamp=$(date '+%F %T')
lines=$(free -mt | tail -4)
for line in lines; do
    echo "$timestamp $line" >> /var/log/memstat.log
done
exit 0
Das einfach per Cron alle 5 Minuten laufen lassen; auswerten kann man das nachher zur Not mit OpenOffice.org Calc oder jeder anderen beliebigen Tabellenkalkulation, die Pivottabellen und -diagramme beherrscht.

klerfrq
Posts: 38
Joined: 2004-08-04 19:54

Re: Backup Script schlägt fehl

Post by klerfrq » 2009-02-18 11:25

Fehler ist behoben - Tabelle ereignisse in der Datenbank confixx hatte einen Fehler. Habe die Tabelle mit phpmyAdmin repaiert - nun läuft der Speicher auch nicht mehr voll und Backup läuft einwandfrei durch.

Danke für eure Hilfe!