← Back to team overview

sslug-teknik team mailing list archive

Re: Cut ??

 

Robert Larsen wrote:


[robert@mercury robert]$ uptime
 6:15pm  up  9:55,  4 users,  load average: 3.37, 4.25, 4.15
[robert@mercury robert]$ uptime | cut -d\  -f5,6,7,9
up  9:55, 4
[robert@mercury robert]$

Hvad så med ovenstående ?
Ikke flere dage. Og hvad med måneder ? (Jeg ved ikke om uptime vil vise hvor
mange måneder en maskine har kørt).

Nu var jeg ikke lige med fra starten..... men det er noget med
at vise en maskines uptime i formatet [YYMMddhhmm] ikk'?

Så kan nedenstående c-program nok bruges.

mvh
Søren Holm


-------------------------------------------------------------------------------------------------------
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main (void)
{
  int f;
  float total_uptime;
  float idle_uptime;
  int days;
  int hours;
  int mins;
  int count;
  char buf[31];

  mins=0;
  hours=0;
  days=0;

  f=open("/proc/uptime",O_RDONLY);
  count=read(f,&buf,30);
  buf[count-1]='\0';
  sscanf(buf,"%f %f",&total_uptime,&idle_uptime);

  mins=(int)total_uptime/60;
  if (mins>=60)
  {
     hours=mins/60;
     mins=mins-hours*60;
     if (hours>=24)
     {
        days=hours/24;
        hours=hours-days*24;
     }
  }
  printf("Server oppetid : ");

  if (days==1)
     printf("%d dag, ",days);
  else
     printf("%d dage, ",days);

  if (hours==1)
     printf("%d time, ",hours);
  else
     printf("%d timer, ",hours);

  printf("%d min.",mins);

  close(f);
  return 0;
};




References