PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : date im Shell Skript



Los_Andros
17.08.06, 08:44
Hallo,
ich habe mein System so konfiguriert, dass täglich (über cron.daily) bestimmte Skripte laufen, die für mich Reports erstellen.
Die Skripte speichern momentan ihre Reports täglich um 00:01 nach /var/report/.

Den Dateinamen erzeuge ich mittels date +%F, also habe ich Dateien, die wie folgt aussehen:
-rw-r--r-- 1 root root 73812 Aug 11 00:06 2006-08-11.aide
-rw-r--r-- 1 root root 73980 Aug 12 00:05 2006-08-12.aide
-rw-r--r-- 1 root root 73980 Aug 13 00:05 2006-08-13.aide
-rw-r--r-- 1 root root 73980 Aug 14 00:05 2006-08-14.aide
-rw-r--r-- 1 root root 73980 Aug 15 00:05 2006-08-15.aide
-rw-r--r-- 1 root root 73980 Aug 16 00:05 2006-08-16.aide

Mein Problem sit folgendes, das Skript wird beispielsweise am 16.08.2006 um 00:01 ausgeführt, so dass der Report ein paar Minuten später fertig ist. Er ist aber ein Report für den vorangegangenen Tag und ich hätte gerne das Datum von gestern, nicht von heute.


Mit date +%j bekomme ich das julianische Datum, also den Tag des Jahres.

Heute ist Tag 229.

Ich habe mir jetzt folgendes überlegt:

DATUM=`date +%j`
DATUM=`expr $DATUM - 1`
echo `date -date 227`


Also Tag gestern (-1) und dann das Datum von gestern ausgeben.
Leider geht das so nicht, ich bekomme immer das heutige Datum.



Kann mir da jemand helfen, wie ich das einfach per Skript berechnen kann?

carstenj
17.08.06, 09:02
Hi,

probier mal Folgendes:

date --date yesterday

pibi
17.08.06, 09:13
Mist, war schon wieder jemand schneller:-( Anyway: Andere Moeglichkeiten sind auch
date -d now-1week
date -d now+3days

usw. Einfach ein bisschen ausprobieren;-)

Gruss Pit.

Los_Andros
17.08.06, 09:59
hehehe danke, das war wirklich einfach ;-)

Habs schon wieder viel zu okmpliziert probiert