Eagle
12-12-2007, 14:27
Hallo,
ich schlage mich mit diesem Backupskript und der Fehlermeldung
/bin/backup.sh
||
| [/var/tmp/snapshoot] FILESYS |
/bin/backup.sh: line 352: unexpected EOF while looking for matching ``'
/bin/backup.sh: line 354: syntax error: unexpected end of file
herum. Zeile 352 beinhaltet
$LOGGER "$SUBJECT"
und Zeile 354 ist die letzte Zeile nach dem abschliessenden "fi".
#!/bin/bash
# Backup-Script
# Das Script startet taeglich um 23.00 Uhr. Abhängig vom Wochen-
# tag werden die Sicherungsvariablen gesetzt, das Band zurueckgespult
# oder aufgeworfen und der Betreuer per Mail benachrichtigt.
# -------------------------------------------------------------------
# Variablen fuer beide Backuptypen:
WEEKDAY=`date "+%u"`
DATUM=`date "+%Y-%m-%d_%H"`
DATE=`date "+%d-%m-%Y"`
TEMP="/var/tmp"
DIR="/var/log/archivelog"
LOGDIR="/var/log/backup"
TAPESTATUS="$LOGDIR/tapestatus-$DATUM.log"
BACKOUT="$TEMP/backout"
BACKERR="$TEMP/backerr"
hasError=""
COMMAND="/bin/tar"
MUTT="/usr/bin/mutt"
LOGGER="/usr/bin/logger"
SUBJECT1="Bandwechsel fuer Vollsicherung, Band:"
SUBJECT2="Bandwechsel fuer Tagessicherung, Band:"
USERMAIL=markus.louis@immo-team.de
INDEXFILE=$(cat $TEMP/backupid)
ADMINMAIL=root@samba.immo-team.local
# FILESYSTEME="/etc /doesnot-exist /root"
FILESYSTEME="/home/ /data/Dokumente /data/makler2000 /backup"
case "$INDEXFILE" in
1)
ID=I-1
;;
2)
ID=I-2
;;
3)
ID=II-1
;;
4)
ID=II-2
;;
5)
ID=III-1
;;
6)
ID=III-2
;;
7)
ID=IV-1
;;
8)
ID=IV-2
;;
esac
if [ "$WEEKDAY" = "1" ]; then
# Variablen fuer Vollbackup:
IDENTY="Vollbackup"
IDENT=${IDENTY}_${ID}
ID2="Sicherung vom "
INDEXSTRING=${DATE}
BACKUP=$FILESYSTEME
TAPE="/dev/st0"
OPTIONS="--create --verbose --one-file-system \
--file=$TAPE --totals \
--ignore-failed-read \
--blocking-factor=128 \
-V "$INDEXSTRING""
# Spezielle Funktionen:
preBackup () {
logme "+ preBackup: start"
# -- hier koennen Tasks vor der Sicherung ausgefuehrt werden,
# -- etwa der Dump einer Datenbank oder einen Dienst anhalten
mt -f $TAPE rewind 1>> $TAPESTATUS 2>&1 || hasError="${hasError}Rewind"
logme "- preBackup: finished"
}
else
# Variablen fuer inkrementelles Backup:
IDENTY="Incremental_Backup"
IDENT=${IDENTY}_${ID}
ID2="Sicherung vom "
INDEXSTRING=${DATE}
SNAPSHOOT="$TEMP/snapshoot"
BACKUP=$SNAPSHOOT
TAPE="/dev/nst0"
TIME="-mmin -1440"
TYPE=" -type f"
OPTIONS="--create --verbose --one-file-system \
--files-from=$SNAPSHOOT \
--file=$TAPE --totals \
--ignore-failed-read \
--blocking-factor=128 \
-V "$INDEXSTRING""
# Spezielle Funktionen:
preBackup () {
logme "+ preBackup: start"
/usr/bin/find $FILESYSTEME $TIME $TYPE > $SNAPSHOOT
# -- hier koennen Tasks vor der Sicherung ausgefuehrt werden,
# -- etwa der Dump einer Datenbank oder einen Dienst anhalten
logme "- preBackup: finished"
}
fi
IDSTRING=${IDENT}_${DATUM}
INDEX="$DIR/$INDEXSTRING.log"
HEADER="$INDEXSTRING"
LOGFILE="$LOGDIR/${IDSTRING}.log"
ARCHIVE="$DIR/$IDSTRING.log"
# ---------------------------------------
# Funktionen
initialize () {
if [ ! -d $LOGDIR ]; then
mkdir -p $LOGDIR
fi
: > $TAPESTATUS
: > $LOGFILE
: > $BACKOUT
: > $BACKERR
}
logme () {
DATUM=`date "+%Y-%m-%d %H:%M"`
echo -e "$DATUM $1" >> $LOGFILE
}
postBackup() {
logme "+ postBackup: start"
# -- Aufraeumarbeiten nach einer Sicherung
# -- z.B. Dienste wieder starten
# Wirft die Vollsicherung nach dem Sicherungsjob am Montag aus
#if [ "$WEEKDAY" = "1" ]; then
# mt -f /dev/st0 eject
#fi
# Wirft die inkrementelle Sicherung nach dem Sicherungsjob am Sonntag aus
if [ "$WEEKDAY" = "7" ]; then
mt -f /dev/nst0 rewind
mt -f /dev/nst0 eject
fi
logme "- postBackup: finished"
}
#==========MAIN=================================== ==========
# Sicherung als inkrementelles Tagesbackup am Dienstag(2),
# Mittwoch(3), Donnerstag(4), Freitag(5), Samstag(6) und Sonntag(7).
# Montags(1) Vollbackup.
initialize
# ---------------------------------------
# vor dem Backup
preBackup
logme "+ check tape status"
mt -f $TAPE status 1>> $TAPESTATUS 2>&1 || hasError="FirstStatus "
mt -f $TAPE tell 1>> $TAPESTATUS 2>&1 || hasError="FirstStatus "
#mt -f $TAPE eom 1>> $TAPESTATUS 2>&1 || hasError="${hasError}End of media"
if grep WR_PROT $TAPESTATUS > /dev/null
then
hasError="${hasError}WriteProtect "
fi
if [ "$hasError" == "" ]; then
logme "- check tape status: ok"
else
logme "- check tape status: errors on: $hasError"
fi
# ---------------------------------------
# Sicherung
# debug
echo "|$hasError|"
if [ "$hasError" == "" ]; then
logme "+ starting backups"
for filesys in $BACKUP; do
logme "+-> next backup: $filesys"
$COMMAND $OPTIONS -C $filesys . \
1>> $BACKOUT 2>> $BACKERR || hasError="${hasError} [$filesys]"
done
if [ "$hasError" == "" ]; then
logme "- backups done"
else
logme "- backups done: errors on: $hasError"
hasError="$hasError FILESYS "
fi
else
logme "!!! tape error, no backup done"
fi
# -- debug
echo "|$hasError|"
# ---------------------------------------
# Nach dem Backup
lastError=""
logme "+ unload tape"
mt -f $TAPE status 1>> $TAPESTATUS 2>&1 || lastError="LastStatus "
#mt -f $TAPE rewoff 1>> $TAPESTATUS 2>&1 || lastError="${lastError}Unload "
if [ "$lastError" == "" ]; then
logme "- unload tape: done"
else
logme "- unload tape: errors: $lastError"
hasError="${hasError} $lastError"
fi
if [ $WEEKDAY == "7 ]; then
INDEXFILE=$(($INDEXFILE+1))
else
if [ $WEEKDAY == "1" ]; then
INDEXFILE=$(($INDEXFILE+1))
else
INDEXFILE=$(($INDEXFILE+0))
fi
fi
case "$INDEXFILE" in
1)
ID=I-1
if [ $WEEKDAY == "1" ]; then
echo Bitte wechseln Sie das Sicherungsband und legen das Band mit der Bezeichnung $ID ein. Heute Nacht bis Sonntagnacht finden die inkrementellen Sicherungen statt. |$MUTT -s "${SUBJECT2}-${ID}" $USERMAIL;
fi
;;
2)
ID=I-2
if [ $WEEKDAY == "7" ]; then
echo Bitte wechseln Sie das Sicherungsband und legen das Band mit der Bezeichnung $ID ein. Heute Nacht findet die Vollsicherung statt. Und reinigen Sie das Bandlaufwerk mit dem Reinigungsband! |$MUTT -s "${SUBJECT1}-${ID}" $USERMAIL;
fi
;;
3)
ID=II-1
if [ $WEEKDAY == "1" ]; then
echo Bitte wechseln Sie das Sicherungsband und legen das Band mit der Bezeichnung $ID ein. Heute Nacht bis Sonntagnacht finden die inkrementellen Sicherungen statt. |$MUTT -s "${SUBJECT2}-${ID}" $USERMAIL;
fi
;;
4)
ID=II-2
if [ $WEEKDAY == "7" ]; then
echo Bitte wechseln Sie das Sicherungsband und legen das Band mit der Bezeichnung $ID ein. Heute Nacht findet die Vollsicherung statt. Und reinigen Sie das Bandlaufwerk mit dem Reinigungsband! |$MUTT -s "${SUBJECT1}-${ID}" $USERMAIL;
fi
;;
5)
ID=III-1
if [ $WEEKDAY == "1" ]; then
echo Bitte wechseln Sie das Sicherungsband und legen das Band mit der Bezeichnung $ID ein. Heute Nacht bis Sonntagnacht finden die inkrementellen Sicherungen statt. |$MUTT -s "${SUBJECT2}-${ID}" $USERMAIL;
fi
;;
6)
ID=III-2
if [ $WEEKDAY == "7" ]; then
echo Bitte wechseln Sie das Sicherungsband und legen das Band mit der Bezeichnung $ID ein. Heute Nacht findet die Vollsicherung statt. Und reinigen Sie das Bandlaufwerk mit dem Reinigungsband! |$MUTT -s "${SUBJECT1}-${ID}" $USERMAIL;
fi
;;
7)
ID=IV-1
if [ $WEEKDAY == "1" ]; then
echo Bitte wechseln Sie das Sicherungsband und legen das Band mit der Bezeichnung $ID ein. Heute Nacht bis Sonntagnacht finden die inkrementellen Sicherungen statt. |$MUTT -s "${SUBJECT2}-${ID}" $USERMAIL;
fi
;;
8)
ID=IV-2
if [ $WEEKDAY == "7" ]; then
echo Bitte wechseln Sie das Sicherungsband und legen das Band mit der Bezeichnung $ID ein. Heute Nacht findet die Vollsicherung statt. Und reinigen Sie das Bandlaufwerk mit dem Reinigungsband! |$MUTT -s "${SUBJECT1}-${ID}" $USERMAIL;
fi
;;
esac
if [ $INDEXFILE == "8" ]; then
INDEXFILE=1
echo $INDEXFILE > $TEMP/backupid
else
echo $INDEXFILE > $TEMP/backupid
fi
# -- debug
echo "|$hasError|"
postBackup
# ---------------------------------------
# Logfile komprimieren und Archiv-File anlegen
zcat $BACKOUT >> $LOGFILE
#cp $BACKOUT >> $LOGFILE
cp $BACKOUT $ARCHIVE
gzip -9 $LOGFILE
# ---------------------------------------
# Infomail senden
if [ "$hasError" == "" ]; then
$MUTT -x -s "$IDSTRING backup done, OK" $ADMINMAIL < $LOGFILE
else
ATTACH=""
case "$hasError" in
*FirstStatus*)
SUBJECT="$IDSTRING backup ERROR: no tape available"
;;
*Rewind*)
SUBJECT="$IDSTRING backup ERROR: could not rewind tape"
;;
*WriteProtect*)
SUBJECT="$IDSTRING backup ERROR: tape is write protected"
;;
*FILESYS*)
SUBJECT="$IDSTRING backup ERROR: error with filesystems"
gzip -f -9 $BACKOUT
ATTACH="-a $BACKOUT.gz"
;;
*LastStatus*)
SUBJECT="$IDSTRING backup done, ERROR: last status problem, suspect"
;;
*Unload*)
SUBJECT="$IDSTRING backup done, ERROR: could not unload tape"
;;
*)
SUBJECT="$IDSTRING backup ERROR: unknown error"
;;
esac
$MUTT -x -a $TAPESTATUS -a $BACKERR $ATTACH -s "$SUBJECT" $ADMINMAIL < $LOGFILE
# -- syslog Eintrag erzeugen
$LOGGER "$SUBJECT"
fi
Ich habe das Script auch schon ohne den letzten Teil nach "Infomail versenden" versucht zu testen, mit dem Erfolg, dass die gleiche Fehlermeldung kommt, nur weiter oben.
Mein Vi ist auf encoding=utf-8 gesetzt und wenn ich "set list" mache, dann sehe ich in jeder Zeile bis Zeile 353 das Zeichen "$".
Sieht jemand unter Euch, was die fehlermeldung und den Programmabruch bewirken könnte?
Vielen Dank
Andreas
ich schlage mich mit diesem Backupskript und der Fehlermeldung
/bin/backup.sh
||
| [/var/tmp/snapshoot] FILESYS |
/bin/backup.sh: line 352: unexpected EOF while looking for matching ``'
/bin/backup.sh: line 354: syntax error: unexpected end of file
herum. Zeile 352 beinhaltet
$LOGGER "$SUBJECT"
und Zeile 354 ist die letzte Zeile nach dem abschliessenden "fi".
#!/bin/bash
# Backup-Script
# Das Script startet taeglich um 23.00 Uhr. Abhängig vom Wochen-
# tag werden die Sicherungsvariablen gesetzt, das Band zurueckgespult
# oder aufgeworfen und der Betreuer per Mail benachrichtigt.
# -------------------------------------------------------------------
# Variablen fuer beide Backuptypen:
WEEKDAY=`date "+%u"`
DATUM=`date "+%Y-%m-%d_%H"`
DATE=`date "+%d-%m-%Y"`
TEMP="/var/tmp"
DIR="/var/log/archivelog"
LOGDIR="/var/log/backup"
TAPESTATUS="$LOGDIR/tapestatus-$DATUM.log"
BACKOUT="$TEMP/backout"
BACKERR="$TEMP/backerr"
hasError=""
COMMAND="/bin/tar"
MUTT="/usr/bin/mutt"
LOGGER="/usr/bin/logger"
SUBJECT1="Bandwechsel fuer Vollsicherung, Band:"
SUBJECT2="Bandwechsel fuer Tagessicherung, Band:"
USERMAIL=markus.louis@immo-team.de
INDEXFILE=$(cat $TEMP/backupid)
ADMINMAIL=root@samba.immo-team.local
# FILESYSTEME="/etc /doesnot-exist /root"
FILESYSTEME="/home/ /data/Dokumente /data/makler2000 /backup"
case "$INDEXFILE" in
1)
ID=I-1
;;
2)
ID=I-2
;;
3)
ID=II-1
;;
4)
ID=II-2
;;
5)
ID=III-1
;;
6)
ID=III-2
;;
7)
ID=IV-1
;;
8)
ID=IV-2
;;
esac
if [ "$WEEKDAY" = "1" ]; then
# Variablen fuer Vollbackup:
IDENTY="Vollbackup"
IDENT=${IDENTY}_${ID}
ID2="Sicherung vom "
INDEXSTRING=${DATE}
BACKUP=$FILESYSTEME
TAPE="/dev/st0"
OPTIONS="--create --verbose --one-file-system \
--file=$TAPE --totals \
--ignore-failed-read \
--blocking-factor=128 \
-V "$INDEXSTRING""
# Spezielle Funktionen:
preBackup () {
logme "+ preBackup: start"
# -- hier koennen Tasks vor der Sicherung ausgefuehrt werden,
# -- etwa der Dump einer Datenbank oder einen Dienst anhalten
mt -f $TAPE rewind 1>> $TAPESTATUS 2>&1 || hasError="${hasError}Rewind"
logme "- preBackup: finished"
}
else
# Variablen fuer inkrementelles Backup:
IDENTY="Incremental_Backup"
IDENT=${IDENTY}_${ID}
ID2="Sicherung vom "
INDEXSTRING=${DATE}
SNAPSHOOT="$TEMP/snapshoot"
BACKUP=$SNAPSHOOT
TAPE="/dev/nst0"
TIME="-mmin -1440"
TYPE=" -type f"
OPTIONS="--create --verbose --one-file-system \
--files-from=$SNAPSHOOT \
--file=$TAPE --totals \
--ignore-failed-read \
--blocking-factor=128 \
-V "$INDEXSTRING""
# Spezielle Funktionen:
preBackup () {
logme "+ preBackup: start"
/usr/bin/find $FILESYSTEME $TIME $TYPE > $SNAPSHOOT
# -- hier koennen Tasks vor der Sicherung ausgefuehrt werden,
# -- etwa der Dump einer Datenbank oder einen Dienst anhalten
logme "- preBackup: finished"
}
fi
IDSTRING=${IDENT}_${DATUM}
INDEX="$DIR/$INDEXSTRING.log"
HEADER="$INDEXSTRING"
LOGFILE="$LOGDIR/${IDSTRING}.log"
ARCHIVE="$DIR/$IDSTRING.log"
# ---------------------------------------
# Funktionen
initialize () {
if [ ! -d $LOGDIR ]; then
mkdir -p $LOGDIR
fi
: > $TAPESTATUS
: > $LOGFILE
: > $BACKOUT
: > $BACKERR
}
logme () {
DATUM=`date "+%Y-%m-%d %H:%M"`
echo -e "$DATUM $1" >> $LOGFILE
}
postBackup() {
logme "+ postBackup: start"
# -- Aufraeumarbeiten nach einer Sicherung
# -- z.B. Dienste wieder starten
# Wirft die Vollsicherung nach dem Sicherungsjob am Montag aus
#if [ "$WEEKDAY" = "1" ]; then
# mt -f /dev/st0 eject
#fi
# Wirft die inkrementelle Sicherung nach dem Sicherungsjob am Sonntag aus
if [ "$WEEKDAY" = "7" ]; then
mt -f /dev/nst0 rewind
mt -f /dev/nst0 eject
fi
logme "- postBackup: finished"
}
#==========MAIN=================================== ==========
# Sicherung als inkrementelles Tagesbackup am Dienstag(2),
# Mittwoch(3), Donnerstag(4), Freitag(5), Samstag(6) und Sonntag(7).
# Montags(1) Vollbackup.
initialize
# ---------------------------------------
# vor dem Backup
preBackup
logme "+ check tape status"
mt -f $TAPE status 1>> $TAPESTATUS 2>&1 || hasError="FirstStatus "
mt -f $TAPE tell 1>> $TAPESTATUS 2>&1 || hasError="FirstStatus "
#mt -f $TAPE eom 1>> $TAPESTATUS 2>&1 || hasError="${hasError}End of media"
if grep WR_PROT $TAPESTATUS > /dev/null
then
hasError="${hasError}WriteProtect "
fi
if [ "$hasError" == "" ]; then
logme "- check tape status: ok"
else
logme "- check tape status: errors on: $hasError"
fi
# ---------------------------------------
# Sicherung
# debug
echo "|$hasError|"
if [ "$hasError" == "" ]; then
logme "+ starting backups"
for filesys in $BACKUP; do
logme "+-> next backup: $filesys"
$COMMAND $OPTIONS -C $filesys . \
1>> $BACKOUT 2>> $BACKERR || hasError="${hasError} [$filesys]"
done
if [ "$hasError" == "" ]; then
logme "- backups done"
else
logme "- backups done: errors on: $hasError"
hasError="$hasError FILESYS "
fi
else
logme "!!! tape error, no backup done"
fi
# -- debug
echo "|$hasError|"
# ---------------------------------------
# Nach dem Backup
lastError=""
logme "+ unload tape"
mt -f $TAPE status 1>> $TAPESTATUS 2>&1 || lastError="LastStatus "
#mt -f $TAPE rewoff 1>> $TAPESTATUS 2>&1 || lastError="${lastError}Unload "
if [ "$lastError" == "" ]; then
logme "- unload tape: done"
else
logme "- unload tape: errors: $lastError"
hasError="${hasError} $lastError"
fi
if [ $WEEKDAY == "7 ]; then
INDEXFILE=$(($INDEXFILE+1))
else
if [ $WEEKDAY == "1" ]; then
INDEXFILE=$(($INDEXFILE+1))
else
INDEXFILE=$(($INDEXFILE+0))
fi
fi
case "$INDEXFILE" in
1)
ID=I-1
if [ $WEEKDAY == "1" ]; then
echo Bitte wechseln Sie das Sicherungsband und legen das Band mit der Bezeichnung $ID ein. Heute Nacht bis Sonntagnacht finden die inkrementellen Sicherungen statt. |$MUTT -s "${SUBJECT2}-${ID}" $USERMAIL;
fi
;;
2)
ID=I-2
if [ $WEEKDAY == "7" ]; then
echo Bitte wechseln Sie das Sicherungsband und legen das Band mit der Bezeichnung $ID ein. Heute Nacht findet die Vollsicherung statt. Und reinigen Sie das Bandlaufwerk mit dem Reinigungsband! |$MUTT -s "${SUBJECT1}-${ID}" $USERMAIL;
fi
;;
3)
ID=II-1
if [ $WEEKDAY == "1" ]; then
echo Bitte wechseln Sie das Sicherungsband und legen das Band mit der Bezeichnung $ID ein. Heute Nacht bis Sonntagnacht finden die inkrementellen Sicherungen statt. |$MUTT -s "${SUBJECT2}-${ID}" $USERMAIL;
fi
;;
4)
ID=II-2
if [ $WEEKDAY == "7" ]; then
echo Bitte wechseln Sie das Sicherungsband und legen das Band mit der Bezeichnung $ID ein. Heute Nacht findet die Vollsicherung statt. Und reinigen Sie das Bandlaufwerk mit dem Reinigungsband! |$MUTT -s "${SUBJECT1}-${ID}" $USERMAIL;
fi
;;
5)
ID=III-1
if [ $WEEKDAY == "1" ]; then
echo Bitte wechseln Sie das Sicherungsband und legen das Band mit der Bezeichnung $ID ein. Heute Nacht bis Sonntagnacht finden die inkrementellen Sicherungen statt. |$MUTT -s "${SUBJECT2}-${ID}" $USERMAIL;
fi
;;
6)
ID=III-2
if [ $WEEKDAY == "7" ]; then
echo Bitte wechseln Sie das Sicherungsband und legen das Band mit der Bezeichnung $ID ein. Heute Nacht findet die Vollsicherung statt. Und reinigen Sie das Bandlaufwerk mit dem Reinigungsband! |$MUTT -s "${SUBJECT1}-${ID}" $USERMAIL;
fi
;;
7)
ID=IV-1
if [ $WEEKDAY == "1" ]; then
echo Bitte wechseln Sie das Sicherungsband und legen das Band mit der Bezeichnung $ID ein. Heute Nacht bis Sonntagnacht finden die inkrementellen Sicherungen statt. |$MUTT -s "${SUBJECT2}-${ID}" $USERMAIL;
fi
;;
8)
ID=IV-2
if [ $WEEKDAY == "7" ]; then
echo Bitte wechseln Sie das Sicherungsband und legen das Band mit der Bezeichnung $ID ein. Heute Nacht findet die Vollsicherung statt. Und reinigen Sie das Bandlaufwerk mit dem Reinigungsband! |$MUTT -s "${SUBJECT1}-${ID}" $USERMAIL;
fi
;;
esac
if [ $INDEXFILE == "8" ]; then
INDEXFILE=1
echo $INDEXFILE > $TEMP/backupid
else
echo $INDEXFILE > $TEMP/backupid
fi
# -- debug
echo "|$hasError|"
postBackup
# ---------------------------------------
# Logfile komprimieren und Archiv-File anlegen
zcat $BACKOUT >> $LOGFILE
#cp $BACKOUT >> $LOGFILE
cp $BACKOUT $ARCHIVE
gzip -9 $LOGFILE
# ---------------------------------------
# Infomail senden
if [ "$hasError" == "" ]; then
$MUTT -x -s "$IDSTRING backup done, OK" $ADMINMAIL < $LOGFILE
else
ATTACH=""
case "$hasError" in
*FirstStatus*)
SUBJECT="$IDSTRING backup ERROR: no tape available"
;;
*Rewind*)
SUBJECT="$IDSTRING backup ERROR: could not rewind tape"
;;
*WriteProtect*)
SUBJECT="$IDSTRING backup ERROR: tape is write protected"
;;
*FILESYS*)
SUBJECT="$IDSTRING backup ERROR: error with filesystems"
gzip -f -9 $BACKOUT
ATTACH="-a $BACKOUT.gz"
;;
*LastStatus*)
SUBJECT="$IDSTRING backup done, ERROR: last status problem, suspect"
;;
*Unload*)
SUBJECT="$IDSTRING backup done, ERROR: could not unload tape"
;;
*)
SUBJECT="$IDSTRING backup ERROR: unknown error"
;;
esac
$MUTT -x -a $TAPESTATUS -a $BACKERR $ATTACH -s "$SUBJECT" $ADMINMAIL < $LOGFILE
# -- syslog Eintrag erzeugen
$LOGGER "$SUBJECT"
fi
Ich habe das Script auch schon ohne den letzten Teil nach "Infomail versenden" versucht zu testen, mit dem Erfolg, dass die gleiche Fehlermeldung kommt, nur weiter oben.
Mein Vi ist auf encoding=utf-8 gesetzt und wenn ich "set list" mache, dann sehe ich in jeder Zeile bis Zeile 353 das Zeichen "$".
Sieht jemand unter Euch, was die fehlermeldung und den Programmabruch bewirken könnte?
Vielen Dank
Andreas