Page 1 of 1

ambiguous redirect

Posted: 2003-02-11 19:29
by theomega
Warum geht dieser Code nicht? Der ist eine Kombination aus zwei Scripten, die ich hier im Forum gefunden habe

Code: Select all

#!/bin/bash 

ADAY='14'; # Abrechungstag bei Puretec 
DATEI='/tmp/panik.trf'; #zum Zwischenspeichern 
ZWEI= '/tmp/test.trf';
PANIK_TRAFFIC=500;   #Trafficlimit für eine Stunde in MB 
MAX_TRAFFIC=50000;  # Gesamtlimit in MB 
EMAIL='meineMail'; #Benachrichtigungsadresse 
WEBROOT='/home/www' 
MAILDIR='/var/spool/mail' 



YM_DAY=`date '+%d'` 
HOUR=`date '+%I'` 
if [ $YM_DAY -lt $ADAY ] 
then 
YM_CURRENT=`date --date='1 month ago' '+%Y%m'`$ADAY 
else 
YM_CURRENT=`date '+%Y%m'`$ADAY 
fi 
OLD_TRAFFIC=`tail $DATEI`; 
TRAFFIC=`/usr/local/iam/iam --from-date=$YM_CURRENT -r /usr/local/iam/dump | grep internet |  perl -ne '@option = split (" ","$_"); print $option[1];'` 
echo $TRAFFIC > $DATEI 
#Morgens und Abends eine Info über den Trafficstand 'Ich lebe noch' 
#if [ $HOUR == 10 ] 
#then 
#Normale Ausgabe


date > $ZWEI
echo "Festplattenspeichernutzung der Benutzern" >> $ZWEI

# wechselt nach webroot 
cd $WEBROOT 

# Schleife über alle web* Verzeichnisse 
for i in web* 
    do 
      echo "$i:" >> $ZWEI
      echo ------ >> $ZWEI
      # du Berechnet den Speicherplatz 
      # -L folgt Symlinks, -h Human, -s Summary, -c Totale 
      du -Lhsc $WEBROOT/$i/ $MAILDIR/$i* >> $ZWEI
      echo "=============================="  >> $ZWEI
    done 

# wechelst wieder zurück 
cd ~ 

echo ==================================== >> $ZWEI
echo $TRAFFIC." MB" >> $ZWEI

cat $ZWEI | mail -s "Server Status" $EMAIL






#fi 
TRAFFIC_VERBRAUCH=`bc<<Ende 
$TRAFFIC-$OLD_TRAFFIC 
Ende`; 
TRAFFIC_VERBRAUCH=`printf "%.0f" $TRAFFIC_VERBRAUCH` 
TRAFFIC=`printf "%.0f" $TRAFFIC` 
# Ist innerhalb einer Stunde mehr verbraucht als im Limit melde Dich! 
if [ $TRAFFIC_VERBRAUCH -gt $PANIK_TRAFFIC ] 
then 
echo "ACHTUNG ! "$TRAFFIC_VERBRAUCH" MB verbraucht." | mail  -s Panik $EMAIL 
fi 
# Ist Inclusivtraffic verbraucht, melde Dich! 
if [ $TRAFFIC -gt $MAX_TRAFFIC ] 
then 
echo "ACHTUNG ! Maximales Trafficlimit abgelaufen." | mail  -s Panik $EMAIL 
fi 
Als fehler erhalte ich immer "ambiguous redirect".

Danke

TO

Re: ambiguous redirect

Posted: 2003-02-11 20:16
by captaincrunch
Auf Anhieb sehe ich keinen Fehler. Ich würde an deiner Stelle das ganze mal z.B. mit sh -x SCRIPT starten, dann bekommst du pro Step die Angabe, was gerade in welcher Variable steckt, und wirst so sicherlich auch weiter kommen, was das Debugging angeht ...

Re: ambiguous redirect

Posted: 2003-02-11 21:07
by [tom]
Hmm - wär ein bash -x SCRIPT hier nicht angebrachter?

[TOM]

Re: ambiguous redirect

Posted: 2003-02-11 21:10
by theomega
Oki, danke ihr beiden, der Fehler ist behoben. Es darf kein Leerzeichen
in dieser Zeile sein

Code: Select all

ZWEI= '/tmp/test.trf'; 
Diese Pingeligkeit ist man ja nichtmal von C++ gewohnt.

Re: ambiguous redirect

Posted: 2003-02-11 21:20
by captaincrunch
Stimmt ... ich war der Meinung, etwas in der Richtung gesehen zu haben, habe aber im Endeffekt die Augen nicht weit genug aufbekommen, um die Zeile wiederzufinden ... :oops:

@ Tom :
Im Normalfall ist bei sämtlichen Linux-Distris sh sowieso nur ein Link auf /bin/bash ... ich bin halt nur "geschädigt" durch Systeme, auf denen keine bash läuft, und muss daher so "portabel" wie möglich denken ... :wink: