He cargado un script de bash como Gist en mi cuenta de Github en print_osx_uptimes.sh lo que puede ayudar a responder su pregunta, incluso si no es exactamente lo que se preguntó (lo que fue más complicado).
La secuencia de comandos consultará la función de registro del sistema Apple (ASL) para los mensajes de "apagado". Los valores del campo 'Mensaje' contienen el tiempo de actividad del sistema a partir del evento de apagado, que, en mi opinión, es probablemente bastante cercano a la pregunta del póster original.
Luego convierte los segundos de tiempo de actividad en un formato más legible que muestra días, horas, minutos y segundos.
Probado en OS X 10.10.5, pero no ve ninguna razón por la que no debería funcionar en nada desde 10.7 en adelante (probablemente 10.6 también).
Código editado para verificar también los mensajes de "reinicio" (duh), y actualiza la salida para mostrar cuál es el tipo de evento (es decir, el nombre del remitente) para cada uno.
Salida de muestra:
$ ./print_osx_uptimes.sh
Shutdown on date/time: Event Reported uptime of:
============================= ========= ===================================
Mon Jul 6 2015 10:32:21 EDT shutdown 1 days 11 hrs 30 min 15 secs
Thu Jul 16 2015 20:47:24 EDT reboot 1 days 22 hrs 15 min 46 secs
Thu Jul 16 2015 22:01:50 EDT shutdown 0 days 21 hrs 4 min 28 secs
Sun Jul 19 2015 02:10:34 EDT shutdown 2 days 16 hrs 35 min 35 secs
Tue Jul 21 2015 19:32:35 EDT shutdown 9 days 17 hrs 41 min 46 secs
Fri Jul 24 2015 20:35:05 EDT shutdown 9 days 7 hrs 55 min 38 secs
Sat Jul 25 2015 00:03:13 EDT shutdown 8 days 10 hrs 45 min 8 secs
Tue Jul 28 2015 09:16:47 EDT shutdown 5 days 21 hrs 20 min 57 secs
Thu Jul 30 2015 22:32:36 EDT shutdown 10 days 0 hrs 3 min 59 secs
Tue Aug 4 2015 01:37:32 EDT shutdown 7 days 4 hrs 24 min 35 secs
Fri Aug 14 2015 19:15:04 EDT reboot 5 days 22 hrs 42 min 1 secs
La carne del guión en Github Gist es:
#!/bin/bash
# https://gist.github.com/jps3/afc1e374b632e1ed1ebc
# function displaytime() is a modified form of that from:
# http://unix.stackexchange.com/a/27014
function displaytime {
local T=$1
local D=$((T/60/60/24))
local H=$((T/60/60%24))
local M=$((T/60%60))
local S=$((T%60))
printf '%5s days %2s hrs %2s min %2s secs' $D $H $M $S
}
function get_syslog_entries () {
syslog -d store \
-F '$(Sender) $(Message)' \
-k Sender Req '^(shutdown|reboot)$' \
-k Message Req "SHUTDOWN_TIME"
}
while read -a line; do
sender="${line[0]}"
log_entry_timestamp="$(date -j -f %s "${line[2]}" +"%a %b %e %Y %T %Z")"
uptime_timestamp="$(displaytime "${line[3]}")"
printf "%s %-8s %s\n" "${log_entry_timestamp}" "${sender}" "${uptime_timestamp}"
done < <(get_syslog_entries)
Espero que esto ayude. Intenté limpiar el script y hacer que las partes y los comentarios fueran útiles.
Puede calcular basándose en el tiempo de actividad total.
Ver este artículo en osXdaily .
Para verificar el tiempo de actividad diario con múltiples paradas en el día, ejecute este comando antes de apagarlo y registre el resultado en algún lugar, como una hoja de cálculo o un archivo de texto. Entonces es un cálculo fácil basado en fecha y duración. Pero realmente, a menos que tenga poca seguridad, no hay mucha necesidad de cerrar muy a menudo. El sueño usa muy poco poder.
Ver este artículo de soporte de Apple :
fuente
Una herramienta de terceros como Monitor de sueño DssW se puede usar para rastrear la cantidad de tiempo que tu Mac estuvo encendida. La aplicación rastrea el consumo de energía y la batería. Los totales están disponibles en el panel de información de las aplicaciones.
Escribí Sleep Monitor, así que soy parcial. También tenga en cuenta que Sleep Monitor 3 funciona en OS X 10.7 - 10.9.
fuente