Datum von Gestern...?

Tobias

Member
Hallo Forum,

ich kämpfe grade etwas mit "date" herum, vielleicht kann mir mal jemand auf die Sprünge helfen.

Ich erhalte spät Abends Dateien mit eingebettetem Datum. In etwa so: log.21-10-2007.gz
Diese Files sollen verarbeitet werden, via nächtlich laufender cronjob.

Dieses Job läuft aber nach Mitternacht, daher möchte ich in dem Befehl sagen daß er die Datei von Gestern verarbeiten soll.

Unter Debian hatte ich das schon mal hingebastelt, da hat das mit log.$(date +%d-%b-%Y --date='1 day ago').gz ganz gut funktioniert.

Aber unter OpenBSD krieg ich das momentan irgendwie nicht hin. Es meckert immer über illegal time format.

Schubbs´ mich doch bitte mal einer von der Leitung, auf der ich grade stehe... :confused:


Danke & viele Grüße!
 
Zumindest FreeBSDs date(1) kennt das -s flag. Man kann das aber IIRC auch mit -j hinkriegen. Darfst du dann selbst basteln :)

Code:
date -r $((`date +%s` - 86400)) +%Y-%m-%d

Update:
Code:
date -jf %s $((`date +%s` - 86400)) +%Y-%m-%d
Geht aber alles nicht mit GNU date, soweit ich das sehe (die manpage ist erwartungsgemäß ein Witz). Unter AIX 5.2 siehts auch nicht besser aus. Solaris habe ich leider kein's zur Hand.
 
Solaris habe ich auch gerade nicht zur Hand, aber Solaris kann nicht mal mit Boardmitteln den Unix Timestamp ausgeben, das musste ich letztens mit Perl machen.
 
FreeBSD (wenn wir schon dabei sind) kann auch das hier:
Code:
date -v -1d "+%d.%m.%Y"
OpenBSD unterstützt aber immerhin -r und %s, also sollte die erste Variante von MrFixit auch dort funktionieren.
 
Hallo Forum,

@ MrFixIt: Supi, danke. Dein erstes Beispiel funktioniert out of the box, beim zweiten kennt er -f nicht. Macht aber nix, jetzt tut es genau das was ich will.

@ laemodost: Uff, bei Solaris bewege ich mich auf ganz dünnem Eis. Ich glaub´s dir einfach ;)

@ 0815Chaot: Danke für den Tip, der ganze Spaß könnte auch unter FreeBSD nochmal auf mich zukommen. Aber das hat noch ein bissi Zeit.


Danke!
 
Zurück
Oben