[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Shellskript: fuehrende Null beim Monat erhalten



Hallo Christian,

* Christian schrieb:

> Mit einem Shellskript moechte ich jetzt zunaechst alle Logfiles aus
> dem jeweils vorletzten Monat heraussuchen:

>  #!/bin/sh
>  #
>  YEAR=`/bin/date +%Y`
>  MONTH=`/bin/date +%m`
m=`expr $MONTH - 2`

# Sonderfälle wenn das Script im Jan und Feb läuft:
case $m in
    0) m=12
        ;;
   -1) m=11
        ;;
esac

if [ $m -lt 10 ]; then
    OLDMONTH=0$m
else
    OLDMONTH=$m
fi

>  SUFFIX=$OLDMONTH-$YEAR
>  #
>  RHOSTS="<diverse ip-adressen>"
>  LOGFILES="auth authpriv cron daemon"
>  #
>  #
>  for HOST in ${RHOSTS}; 
>  do
>   cd /var/log/HOSTS/$HOST
>   echo "Bearbeite Logfiles von $HOST..."
>   for FILE in ${LOGFILES};
>   do
>    ls -l /var/log/HOSTS/$HOST/$FILE.$SUFFIX;
>   done
>  done
> 
> "Leider" tragen die Logfiles in der "Monatsnummer" eine fuehrende
> Null, die bei der Berechnung des $OLDMONTH mit `expr $MONTH - 2`
> "verschwindet" - sprich: Ich moechte, dass die variable SUFFIX z.B. im
> September den Wert "07-2002" erhaelt.

Solange du date aus den GNU sh-utils benutzt, sollte das auch um
den Jahreswechsel herum funktionieren:

OLDMONTH=`date +%m --date="2 month ago"`


Gruß

christian

-- 
My brain? It's my second favourite organ.
    Woody Allen, Sleeper (film, 1973)



Reply to: