Linux 15.010 Themen, 106.838 Beiträge

Komisches Shellskript verhalten

hardez / 21 Antworten / Flachansicht Nickles

Hallo Leute,
ich hab ein seltsames verhalten bei einem Shellskript und weiß leider nicht mehr weiter.

Infos:
Ubuntu Linux (6.06 Dapper LTS) auf einem
Intel Dual Xeon á 1,6 GHz (4x1,6 GHz)
Raid 5 3x80 GB


Soviel zum System an sich.
Auf dem Server läuft VMWare Server 1.02 und in der VMWare läuft momentan ein Exchange Server.
Der Speicherplatz dieser VM ist komplett vorreserviert und nicht in 2GB blöcke aufgeteilt.

Diesen Exchange möchte ich nun per Shellskript auf einen externen NAS sichern.

Shellskript arbeitet (im groben) wie folgt:

-Variablen deklarieren
-VM herunterfahren
-Backup durchführen (Ordner in dem die VM liegt zippen und auf dem NAS speichern)
-VM starten
-Ende

Wenn ich dieses Skript von Hand anschmeiße ist auch alles OK.
Wenn ich dieses Skript auf eine andere VM anwende, bei der der Speicherplatz NICHT vorreserviert ist geht es auch.

Wenn ich allerdings das Skript per Cronjob um 3 Uhr Nachts ausführen lasse, Startet er das Skript, bricht aber nach ca. 4-700 MB Sicheurng OHNE Fehlermeldung ab.
In den Logs ist zumindest kein Fehler ersichtlich.

Jetzt kommt aber nicht mit Sprüchen wie: Dann schmeiß es doch per hand an.
Das geht nämlich nicht, da ich den Server zwischen 6 Uhr morgens und 1 Uhr nachts nicht herunterfahren darf.
Da ich nachts aber nicht arbeite, geht es nur per Cronjob!!

So nun hoffe ich das einer von euch ne Idee hat...

bei Antwort benachrichtigen
KarstenW hardez „Tar war ursprünglich an dieser Stelle eingesetzt. Zip ist schon die...“
Optionen

Wenn du irgendwelche Zustände überwachen willst reicht es doch auch eine bolsche Variable (es gibt leider nur String Variablen bei der Shellprogrammierung) zu setzen oder zu löschen. Du mußt doch deshalb nicht das Programm zip mehrmals starten.
Wenn du eine 2 Gigabyte große Datei mehrmals kopieren willst, könnte doch auch irgendein Speicher überlaufen und deshalb das Programm abbrechen.
Wenn du warten willst bis in diese Datei nicht mehr geschrieben wird, dann kannst du eine bolsche Variable überwachen.
Wenn das Backup gemacht werden soll, dann setze diese bolsche Variable auf true und wenn ein Fehler aufgetreten ist , dann setze diese Variable auf
false.
Am Ende wertest du die Variable aus und startest zip nur einmal.
Bei C gibt es dafür den Datentyp bool und die zwei Schlüsselwörter true und false.
Du kannst bei einem Shellscript auch eine Stringvariable entweder mit true oder false (ähnlich wie bei C) initialisieren und dann auswerten.


Debian GNU/Linux https://www.debian.org/index.de.html
bei Antwort benachrichtigen