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: