Voglio visualizzare il tempo trascorso dall'ultimo avvio del sistema usando uptime, ma non voglio che mostri tutte quelle informazioni. Voglio solo sapere quante ore sono trascorse dall'ultimo avvio del sistema (ad es .: 18:17:59)
Voglio visualizzare il tempo trascorso dall'ultimo avvio del sistema usando uptime, ma non voglio che mostri tutte quelle informazioni. Voglio solo sapere quante ore sono trascorse dall'ultimo avvio del sistema (ad es .: 18:17:59)
Risposte:
Per ottenere il tempo trascorso dall'ultimo avvio del sistema in hh:mm:ssformato, è possibile utilizzare:
awk '{print int($1/3600)":"int(($1%3600)/60)":"int($1%60)}' /proc/uptime
/proc/uptime lo pseudo-file contiene due numeri:
Quindi, usando awkpuoi prendere il numero primo e convertirlo in hh:mm:ssformato.
Per ottenere il tempo di attività in pochi secondi:
awk '{print $1}' /proc/uptime
Per ottenere il tempo di attività in pochi minuti:
echo $(awk '{print $1}' /proc/uptime) / 60 | bc
Per ottenere il tempo di attività in ore:
echo $(awk '{print $1}' /proc/uptime) / 3600 | bc
Per ottenere x cifre di precisione è possibile aggiungere scale = x, ad esempio per x = 2
echo "scale=2; $(awk '{print $1}' /proc/uptime) / 3600" | bc
Prova questo:
uptime | awk '{ print $3 }'
In effetti, stampa la terza parola della linea prodotta da uptime.
uptimesembra non avere opzioni ma non sono riuscito a trovare nulla in rete.
Una banale modifica per mostrare i giorni:
awk '{print int($1/86400)"days "int($1%86400/3600)":"int(($1%3600)/60)":"int($1%60)}' /proc/uptime