• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Script "Sicherung" wird nicht vollständig ausgefüh

hallo,

ich sichere meinen Imap-Server mit folgendem Script.

#!/bin/sh

# Der Server wird gestoppt

cd /etc/init.d/ &&
./cyrus stop && ./postfix stop

# Heir wird in das Verzeichniss /var/lib gewechselt und in ein imap_heutiges_datum*.tar.gz gepackt








cd /var/spool/ &&
mv *.tar.gz /backup/januar &&


# Hier wird das gleiche mit dem Verzeichniss /var/lib gemacht

cd /var/lib/ &&
mv *.tar.gz /backup/januar &&


# Hier wird die Bandsicherung gestartet die das Verzeichniss /backup /etc und /home sichert

tar ccv -64 -f /dev/st0 /backup /etc /home &&

## Nach der Bandsicherung wird der Server wieder gestartet

cd /etc/init.d/ &&
./cyrus start && ./postfix start &&

exit 0

Doch die letzte Zeile wird nicht ausgeführt?

## Nach der Bandsicherung wird der Server wieder gestartet

cd /etc/init.d/ &&
./cyrus start && ./postfix start &&

Hat jemand einen Tipp?
 
Hi Jochen,

&& (und) bzw. || (oder) solltest du nur nutzen wenn eine
spezielle Aktion nach Erfolg/Fehler passieren soll.

Z.B. ./cyrus stop && ./postfix stop
=> Postfix stop wird nur aufgerufen, wenn "cyrus stop" keinen
Fehler meldet.
Das macht aber für mich keinen Sinn. Wenn z.B. cyrus Fehler meldet
wäre dein Postfix gestartet, wenn du die Sicherung machst.
Die letzte Zeile wird wahrscheinlich wegen einer Fehlermeldung
in ./cyrus ... oder ./postfix nicht ausgeführt.

Alles unten ohne Gewähr ! ich weiss z.B. nicht wie die IMAP-Verzeichnisse heissen !

Mein Vorschlag wäre:
Code:
#!/bin/bash

# Der Server wird gestoppt

# Monat in Kleinbuchstaben.

monat="`date +%B | tr [A-Z] [a-z]`"
# Stoppen
/etc/init.d/cyrus stop
/etc/init.d/postfix stop

if [ ! -d /backup/$monat ]
then
  mkdir /backup/$monat
  <fehlt hier: fehlerbehandlung wenn dass nicht geklappt hat..>
fi

tar czf /backup/$monat/imap-spool....tar.gz -C /var/spool  imap
tar czf /backup/$monat/imap-lib....tar.gz -C /var/lib  imap

# Starten, kann wärend der Bandsicherung laufen..
/etc/init.d/cyrus starten
/etc/init.d/postfix starten

tar ccv -64 -f /dev/st0 /backup /etc /home || echo "Bandsicherung meldet Fehler !!"

exit 0


Viele Grüße,

Haveaniceday[/code]
 

dirvish

Newbie
Hallo,

danke das script werde ich auf jeden fall mal testen.

So der fehler lag bei der Bandsicherung

so nicht

tar ccv -64 -f /dev/st0 /backup /etc /home

sondern

tar ccv -b 64 -f /dev/st0 /backup /etc /home

Ich hatte die Blockgrösse nicht angegeben.

Vielen Dank.

Mal noch etwas zu DEBIAN.

Gibt es von der Scripterstellung und von den cronjobs unterschiede zwischen Debian und Linux? Oder ist das die gleiche Welt.

Ich werde in einige Wochen alles auf Debian setzten.
 

dirvish

Newbie
Hallo,

ich habe das so in einige Anleitungen gelesen.
Wie müssten die Optionen deiner Meinung nach aussehen?
 
Oben