$0 ist der nullte Parameter an dein Programm und enthält den Namen der Programmdatei bzw. deines Shellskripts. Was du willst, ist vermutlich $?, Rückgabewert des zuletzt ausgeführten Programms. Außerdem solltest du [ $EXIT -eq 0 ] (Zahlen-Vergleich) statt [ $EXIT = 0 ] (Zeichenketten-Vergleich) benutzen, dann wäre dir das schon ggf. von alleine aufgefallen.Im Übrigen:
macht nicht was du denkst – das Leerzeichen wird zwar ordnungsgemäß in der Variablen gespeichert, aber diese wird trotzdem als zwei Parameter übergeben. Dateinamen sollte man möglichst immer in Anführungszeichen übergeben.
Merci
Die Variable TARGETB funzt jetzt. Allerdings tut der "Fehlerlog" immernoch nicht.
So siehts jetzt aus:
Bash
#!/bin/sh
DATE=`date +"%m-%Y"`
NAME="Backup"
FULLNAME="$NAME-$DATE"
SOURCE=${HOME}/Dokumente/
TARGET=/media/Daten/Backups/Monatsbackups/$FULLNAME/
TARGETB=/mnt/LAN/Sicherung\ Doku/Monatsbackups/$FULLNAME/
LOG=${HOME}/Backup.log
LOGDATE=`date +"%d-%m-%Y"`
TMPLOG=${HOME}/Backup.log.tmp
EXIT=$?
if [ -e /media/Daten/Backups/Monatsbackups/$FULLNAME ]; then
echo Backup vom $LOGDATE|tee -a $TMPLOG >>$LOG
echo Sicherung auf /dev/sda3|tee -a $TMPLOG >>$LOG
rsync -avu $SOURCE $TARGET |tee -a $LOG >> $TMPLOG
echo ------------------------------------------------------------------------ |tee -a $TMPLOG >>$LOG
echo Sicherung auf /dev/sdb1|tee -a $TMPLOG >>$LOG
rsync -avu $SOURCE "$TARGETB" |tee -a $LOG >> $TMPLOG
echo ------------------------------------------------------------------------ |tee -a $TMPLOG >> $LOG |tee
else
echo Backup vom $LOGDATE|tee -a $TMPLOG >>$LOG
mkdir /media/Daten/Backups/Monatsbackups/$FULLNAME
mkdir /mnt/LAN/Sicherung\ Doku/Monatsbackups/$FULLNAME/
rsync -avu $SOURCE $TARGET |tee -a $LOG >> $TMPLOG
rsync -avu $SOURCE $TARGETB |tee -a $LOG >> $TMPLOG
echo ------------------------------------------------------------------------ |tee -a $TMPLOG >> $LOG
fi
if [ $EXIT -eq 0 ]; then
mailx -s "Backup erfolgreich" $(whoami)@$(hostname) <$TMPLOG
else
mailx -s "Backup fehlgeschlagen" $(whoami)@$(hostname) <$TMPLOG
fi
rm $TMPLOG
Alles anzeigen