Shellskript funktioniert nicht richtig


Rucksack

Grünschnabel
Einen wunderschönen guten Morgen liebe Welt,

ich habe mal eine Frage. Ich habe ein Backup Skript auf einem Linux Debian laufen, nach der Erstellung des Backups soll eine Mail als Information an einen bestimmten Account versendet werden. Der Cronjob läuft jeden Abend.

Die Backups werden erstellt lediglich, dass versenden der Mails funktioniert nicht automatisiert. Der Server auf dem das Skript läuft ist der Mailserver.

Nachfolgend füge ich den Code ein evtl. hat sich ein Fehler eingeschlichen den ich nicht sehe.


_______________________________________________________________________________________________________
BACKUPDIR=/store/backup/home
TWOWEEKBACKUP=twoweekbackup
ONEWEEKBACKUP=oneweekbackup
TSNAME=timestamp.snar
BACKUPNAME=home
DIRS=/home

if [ "$1" == "complete" ]; then

#Komplettes Backup
MYDATE=complete

#Alte Timestamps loeschen
rm -f $BACKUPDIR/$TSNAME

#Twoweekbackups loeschen
rm -rf $BACKUPDIR/$TWOWEEKBACKUP.$BACKUPNAME.d

#Oneweekbackups in Ordner Twoweekbackup umbenennen
mv -f $BACKUPDIR/$ONEWEEKBACKUP.$BACKUPNAME.d $BACKUPDIR/$TWOWEEKBACKUP.$BACKUPNAME.d

#Backups in Ordner Oneweekbackup verschieben
mkdir $BACKUPDIR/$ONEWEEKBACKUP.$BACKUPNAME.d
mv -f $BACKUPDIR/$BACKUPNAME.*.tar.bz2 $BACKUPDIR/$ONEWEEKBACKUP.$BACKUPNAME.d

else

#Inkrementelles Backup
MYDATE=$(date +%y%m%d)



fi

#Abzug erstellen

#Backup ungepackt
#tar czf $BACKUPDIR/$BACKUPNAME.$MYDATE.tar -g $BACKUPDIR/$TSNAME $DIRS 2> /dev/null
#Backup gepackt
tar --create --preserve-permissions --bzip2 --file=$BACKUPDIR/$BACKUPNAME.$MYDATE.tar.bz2 --listed-incremental=$BACKUPDIR/$TSNAME $DIRS 2> /dev/null

echo "Subject: $MYDATE $MYBACKUPNAME Backup erfolgreich" | sendmail mail@adresse

_____________________________________________________________________________________________________________________


Wenn ich den Sendmail Befehl manuell absetze funktioniert der Mailversand.

Ich verlange keine fertige Lösung sondern einfach einpaar denkanstöße :)

Vielen dank im vorraus.

Mit freundlichen Grüßen

euer Rucksack
 

Bratkartoffel

gebratene Kartoffel
Premium-User
Hi,

was steht im /var/log/mail.log?
Normalerweise verschickt cron selbst eine Mail, sobald ein Script eine Ausgabe hat. Somit kannst du dir normal das "| sendmail mail@adresse" sparen und stattdessen in der Cronconfig die "MAILTO" Variable auf deine Adresse setzen.

Grüsse,
BK
 

Rucksack

Grünschnabel
Hallo,

im /var/log/mail.log taucht nichts diesbezüglich auf. Ich werde es mal mit deinem Vorschlag probieren.

Ich sage bescheid ob es geklappt hat.

Vielen Dank.
 

melmager

Erfahrenes Mitglied
Ich habe mir angewöhnt in Scripten die per Cronjobs laufen immer die absolute Pfadangabe anzugeben
Enviroment Variablen werden nicht immer ausgewertet - Bedeutet: kann sein das während der laufzeit nicht bekannt ist wo das angesprochene Programm liegt und wird daher nicht ausgeführt
 

Rucksack

Grünschnabel
Hallo ihr lieben entschuldigt bitte, dass ich erst jetzt antworte ich musste mich um einige anderen sachen kümmern und bin überhaupt nicht mehr hierzu gekommen. Das Problem, dass die mail nciht versendet wird schalten wir mal zurück mir ist ein viel größeres aufgefallen. Mein Vorgänger hat das Skript erstellt aber anscheinend nicht getestet. Es werden zwar alle Ordner der Mailbox kopiert aber kein Inhalt - keine einzige Mail wird gesichert. Erstmal will ich das problem gelöst bekommen, könnt Ihr erkennen warum in diesem Skript nicht eine einzige mail gesichert wird?

Genutzt wird Dovecot.

Vielen dank für eure zügigen Antworten zu meinem 1. Post.