1 votos

¿Tiempo de actividad desde el arranque excluyendo el reposo para osx yosemite?

¿Cómo puedo obtener el tiempo total de actividad desde el arranque (excluyendo el tiempo de reposo)?

Puedo utilizar el uptime que muestra el tiempo transcurrido desde el último arranque, pero esto no diferencia entre el uso activo y el sueño o la hibernación.

2voto

klanomath Puntos 19587

Que yo sepa no hay ningún comando sencillo que se ejecute en el Terminal para obtener el resultado deseado.

Este es un ejemplo de una solución para obtener el tiempo de actividad y el tiempo de espera:

uptime && pmset -g log|grep 'date'|grep -E ' Wake | Sleep '|grep -v 'Dark Wake'

con fecha: dd/mm/aa (ejemplo: 23/07/15)

Ejemplo (máquina virtual 10.9.5):

machinename:~ user$ uptime && pmset -g log|grep '23/07/15'|grep -E ' Wake | Sleep '|grep -v 'Dark Wake'
14:59  up  1:09, 3 users, load averages: 0.58 0.47 0.51
23/07/15 13:51:39 GMT+2  Sleep                  Software Sleep pid=90: Using AC                                             10 secs   
23/07/15 13:51:49 GMT+2  Wake                   Wake [CDNVA] due to power-button/User: Using AC                             149 secs  
23/07/15 13:54:18 GMT+2  Sleep                  Software Sleep pid=90: Using AC                                             91 secs   
23/07/15 13:55:49 GMT+2  Wake                   Wake [CDNVA] due to power-button/User: Using AC                             1872 secs 
23/07/15 14:27:01 GMT+2  Sleep                  Software Sleep pid=90: Using AC                                             7 secs    
23/07/15 14:27:08 GMT+2  Wake                   Wake [CDNVA] due to power-button/User: Using AC

Ahora haz las cuentas y calcula el tiempo de actividad sin dormir. (6540 segundos - 108 segundos = 6432 segundos).

Dependiendo de su sistema operativo y del modo de hibernación que haya configurado, es posible que tenga que modificar la parte grep en el comando anterior. Compruebe pmset -g log para las cadenas adecuadas. También puede omitir la parte ' Wake ' del comando para simplificar la salida.

2voto

Thorsten Niehues Puntos 106

ejecutar el siguiente script con python3

# imports
import os
from datetime import datetime

# global declarations
sleepAndWakes = []
cummulatedAwakeTime =  datetime.strptime('0001-01-01 00:00:00', '%Y-%m-%d %H:%M:%S')
previousSleepAndWakeWithTime = None

resetAwakeStatisticsByLastBoot = None

class SleepAndWakeWithTime:
    def __init__(self, dateTime, actionName):
        self.dateTime = dateTime
        self.actionName = actionName

# reading log messages vi pmset
stream = os.popen('pmset -g log|grep -e " Sleep  " -e " Wake  " -e " DarkWake  " -e " ShutdownCause " -e " Start "')
lines = stream.readlines()

# parse pmset lines and store them in an array of event and date-time
for line in lines:
    #print('line: ' + line)
    dateTimeStr =  line[:19]
    actionName = line[26:34].strip()
    datetimeObject = datetime.strptime(dateTimeStr, '%Y-%m-%d %H:%M:%S')
    sleepAndWakes.append(SleepAndWakeWithTime(datetimeObject, actionName))

# read array and calcualate the total wake time (all the times between sleeps)
for index, sleepAndWakeWithTime in enumerate(sleepAndWakes):
    #print(sleepAndWakeWithTime.dateTime.strftime('%Y-%m-%d %H:%M:%S') + ' ' + sleepAndWakeWithTime.actionName)
    if index > 0: 
        previousSleepAndWakeWithTime = sleepAndWakes[index-1].dateTime
        timeDifference = sleepAndWakeWithTime.dateTime - previousSleepAndWakeWithTime
        if sleepAndWakeWithTime.actionName == 'Sleep' or sleepAndWakeWithTime.actionName == 'Shutdown': 
            cummulatedAwakeTime += timeDifference; #print(timeDifference)

        # ask to reset statistics after boot (and then reset if 'y' was typed)
        if sleepAndWakeWithTime.actionName == 'Start':
            if resetAwakeStatisticsByLastBoot == None:
                resetAwakeStatisticsByLastBootAnswer = input("Do you want to calculate/cummulate the total awaketime since the last boot [y] or the total awake time [n]?")
                if resetAwakeStatisticsByLastBootAnswer == 'y': resetAwakeStatisticsByLastBoot = 'y'
                elif resetAwakeStatisticsByLastBootAnswer == 'n': resetAwakeStatisticsByLastBoot = 'n'
                else: 
                    print('insufficient answer assuming yes')
                    resetAwakeStatisticsByLastBoot = 'y'
            if resetAwakeStatisticsByLastBoot == 'y': cummulatedAwakeTime =  datetime.strptime('0001-01-01 00:00:00', '%Y-%m-%d %H:%M:%S')

# add time since last sleep
cummulatedAwakeTime += (datetime.now() - previousSleepAndWakeWithTime)

# reduece the inital minimum date value
cummulatedAwakeTime -= datetime.strptime('0001-01-01 00:00:00', '%Y-%m-%d %H:%M:%S')

print('Total awake time : ' + str(cummulatedAwakeTime))

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X