Superuser

Autor Thema: mit datum rechnen  (Gelesen 3915 mal)

reini123

  • Gast
mit datum rechnen
« am: 23. Januar 2006, 13:15:55 »
hallo,
ich will mit datum rechnen und stelle dabei fest das ich den ueblichen weg ueber sekunden seit 1970 nicht einschlagen kann.
Unter Linux konverierte ich bisser einfach die Datum-Strings nach sec-nach-1970 und das ergebniss wieder auf einen Datum-String, jedoch ist dieser weg scheinbar unter Solaris nicht beschreitbar ???
Gibt es eventuell einen mir nicht bekannten trick dieses einfach zu bewerkstelligen?
Da ich diese Funktion auf mehreren Maschienen braeuchte kommen leider auch nur Standart-Commandos in Frage die hoffentlich Sun-Netz umspannend zur Verfuegung stehen  ;D

Mƒg ®êïñï



sonnenblen.de - Das unabhängige Sun User Forum

mit datum rechnen
« am: 23. Januar 2006, 13:15:55 »

mdjr

  • Gast
Re: mit datum rechnen
« Antwort #1 am: 23. Januar 2006, 16:28:27 »
Wie hast du das unter Linux gemacht?
Per Skriptbefehl oder C/C++?

Martin

reini123

  • Gast
Re: mit datum rechnen
« Antwort #2 am: 23. Januar 2006, 16:49:50 »
hi,
per script
date --date='2000-01-01 UTC' +%s
          946684800
und return sodate -d '1970-01-01 UTC 946684800 seconds' +"%Y-%m-%d %T %z"
          1999-12-31 19:00:00 -0500

Mƒg ®êïñï
Ps.: ein 10min BeispielScript das ich mal in Verwendung hatte ..... für ADSL & TelecomAustira inc DYNDNS und log Auswertung für Statistik
https://www.call4wall.com/bash/adslcon
Da hab ich ein bisserl was mit Datum gerechnet !
« Letzte Änderung: 23. Januar 2006, 17:08:55 von reini123 »

Offline Drusus

  • Sobl Master
  • ****
  • Beiträge: 424
  • Intentionally left blank
Re: mit datum rechnen
« Antwort #3 am: 23. Januar 2006, 17:24:52 »
Moin,

das "+%s" ist eine GNU Erweiterung des "date" Befehls und nicht portabel. Wenn du etwas bastelst, dass nur auf deinen eigenen Maschinen laufen soll, dann kannst du natuerlich auch dort das GNU date (statt dem Solaris date) verweden. Dazu musst du die "Companion CD" installiert haben und findest danach das GNU date als /opt/sfw/bin/gdate wieder. Mit diesen funktioniert dann auch wieder dein +%s Beispiel zur Umrechnung.

Tschau,
  Drusus.

reini123

  • Gast
Re: mit datum rechnen
« Antwort #4 am: 23. Januar 2006, 21:32:01 »
hi,
das ist eben das Problem ... es sind nicht "meine" Maschienen. Ich muss leider davon ausgehen das auf keinen der Systemen irgend ein Zusatz implemetiert ist  :-\ .

Es geht im Detail um eine Datei mit Inhalt
x DatumString - bla - bla
y DatumString - bla - bla
usw.
Per Script sollen entwerde alle x oder y Zeilen von Datum bis Datum aus Dieser Datei rausgefischt und verarbeitet werden.
Leider habe ich weder Einfluss auf den Inhalt dieser Datei noch habe ich einen Einfluss auf installierte Komponenten  :-[
So wie es Aussieht werde ich wohl Jahr Monat Tag Stunde Minute Sekunde, einzeln auf -le bzw -ge abpruefen muessen :-\

Mƒg ®êïñï

mdjr

  • Gast
Re: mit datum rechnen
« Antwort #5 am: 23. Januar 2006, 22:14:57 »
das ist eben das Problem ... es sind nicht "meine" Maschienen. Ich muss leider davon ausgehen das auf keinen der Systemen irgend ein Zusatz implemetiert ist  :-\ .

Hallo.

Du kannst die Datei "gdate" aus der Companion-CD auch manuell extrahieren:
Die Datei (Sparc-Version) sitzt im Archiv "/components/sparc/Packages/SFWshutl/archive/none.bz2".
Es handelt sich um eine bzip2-Gepackte CPIO-Datei.
Diese mit bzip2 entpacken und mit cpio auspacken: "cpio -i -I none"
(Dabei muss das aktuelle Verzeichnis ein Unterverzeichnis "sfw/bin" haben, dorthin werden gdate und noch ein paar andere Dateien kopiert.)

Falls es sich ausschließlich um Sparc-Rechner oder x86-Rechner handelt, kannst du "gdate" in das selbe Verzeichnis kopieren, in dem das Skript ist (da hast du ja Schreibrechte). Die Datei kann dann mittels "/verzeichnis/gdate" (ggf. einfach "./gdate") ausgeführt werden - sie benötigt keine weiteren Dateien oder shared libraries.

Falls im Netz gemischt Sparc- und x86-Rechner vorkommen, so würde ich die beiden Dateien als "gdate_sparc" und "gdate_xxx"
("xxx"="x86" ?? -> s. "uname -p") abspeichern.
Dann kannst du sie mittels "/verzeichnis/gdate_`uname -p`" aufrufen:
/my_directory/gdate_`uname -p` --date='2000-01-01 UTC' +%s

Martin

reini123

  • Gast
Re: mit datum rechnen
« Antwort #6 am: 23. Januar 2006, 22:29:00 »
Hi Martin,
leider weis ich sicher das 4500er und auf jedenfall auch blade2000 die mit der angeblich hotplug fc-al platte beteiligt sind !
Welche Systeme sonst noch aktuell verwendet werden kann ich leider auch nicht sagen ....
Das ganze ist fuer Ex Arbeitskollegen und ich habe mal einen Script Entwurf bei mir  (http://www.call4wall.com/bash/test) ins netz gestellt und meine ehemaligen Kollegen per mail ueber selbiges informiert.
Bei diesen Script bin ich mal jeder Rechnerei durch wert vergleich aus dem Weg gegangen jedoch, 
ob Sie dieses Script in der Form fuer Ihre Zwecke anpassen koennen erfahr ich fruehestens Morgen  ;D
Jedenfalls muss ich feststellen das ich, der die letzen 2 Jahre nicht viel auf Sun gewerkt hatt, etwas aus der Uebung bin  :P

trotzdem Danke fuer den Tipp

Mƒg ®êïñï