[linux] seconden omrekenen naar days,hours & seconds

Pagina: 1
Acties:

  • AtlonXP1800
  • Registratie: Augustus 2001
  • Laatst online: 29-01-2025
Ik ben bezig een scriptje te maken wat de uptime in seconden (wat uit een bestand wordt gelezen) om te zetten naar dagen, uren en minuten.

Ik heb tot nu toe cat /tmp/uptime|mawk '{print $1/60/60/24 " days " $1/60/60 " hours " $1/60 " minutes"}' maar dat werkt natuurlijk niet omdat er nie gerekend wordt met restwaarde.

Wie weet hoe ik dit wel kan doen?

  • RupS
  • Registratie: Februari 2001
  • Laatst online: 22-01 12:46
Je kan gaan rekenen met de modulo (%)...
je kent het wel: 10 / 3 = 3
en: 10 % 3 = 1

ter verduidelijking:

$1 / 86400 = aantal dagen
$1 % 86400 = aantal secondes, die geen hele dag zijn... dat weer delen door 3600, etc.

[ Voor 46% gewijzigd door RupS op 14-02-2003 11:13 ]


  • monkel
  • Registratie: Januari 2001
  • Laatst online: 22:17
waarom niet gewoon het commando uptime gebruiken?

  • AtlonXP1800
  • Registratie: Augustus 2001
  • Laatst online: 29-01-2025
monkel schreef op 14 februari 2003 @ 11:13:
waarom niet gewoon het commando uptime gebruiken?
omdat de uptime van de pc (uit /proc/uptime) vergeleken moet worden met de uptime uit /tmp/uptime

ik ga even wat met % proberen

  • RupS
  • Registratie: Februari 2001
  • Laatst online: 22-01 12:46
monkel schreef op 14 februari 2003 @ 11:13:
waarom niet gewoon het commando uptime gebruiken?
Omdat het natuurlijk niet de Uptime van het Linux systeem zelf hoeft te zijn, maar de verwerking van de uptime van een of ander apparaat, naar, bijvoorbeeld mooie grafiekjes :)
denk ik
edit:

Niet dus :)

[ Voor 13% gewijzigd door RupS op 14-02-2003 11:24 ]


  • AtlonXP1800
  • Registratie: Augustus 2001
  • Laatst online: 29-01-2025
ik kom nu al een heel eind, ik heb dit gedaan:

cat /tmp/uptime|mawk '{print $1/86400 " days " $1%86400/3600 " hours " $1%86400%3600/60 " minutes"}'

dit geeft een output zoals:

0.844763 days 20.2743 hours 16.4593 minutes

nu dus nog afronden naar beneden...

  • Buffy
  • Registratie: April 2002
  • Laatst online: 26-12-2024

Buffy

Fire bad, Tree pretty

- laat maar -

je wil het verschil in tijd, niet een datum

[ Voor 75% gewijzigd door Buffy op 14-02-2003 11:31 ]

That which doesn't kill us, makes us stranger - Trevor (AEon FLux)
When a finger points at the moon, the imbecile looks at the finger (Chinese Proverb)


  • AtlonXP1800
  • Registratie: Augustus 2001
  • Laatst online: 29-01-2025
het is inmiddels gelukt:

cat /tmp/uptime|mawk '{print $1/86400 ":" $1%86400/3600 ":" $1%86400%3600/60}'|sed s/[.]/:/g|mawk -F: '{print $1 " days " $3 " Hours " $5 " minutes"}'

het kan volgens mij wel netter, maar in ieder geval heb ik iets werkends.

De bedoeling hiervan is trouwens om dit via logwatch te laten uitvoeren op een heleboel pc's , die moeten dan alleen uitvoer geven als het systeem de hoogste uptime heeft (hij vergelijkt dit dan met een bestandje wat ergens op het netwerk aanwezig is.

niet nuttig, wel LOLig :)
Pagina: 1