Como rastrear o tempo de atividade do computador

1

Eu tenho desktop Linux. Eu não o deixo ligado 24 horas por dia. Gostaria de obter estatísticas sobre quanto tempo o computador foi ligado todos os dias, por exemplo:

2012-08-21: 7:52
2012-08-22: 8:43
2012-08-23: 7:36

Se o computador não estiver ligado, nenhum registro será necessário.

    
por aisbaa 23.08.2012 / 13:09

6 respostas

0

Eu encontrei uma pergunta semelhante no link do stackoverflow . Melhor uptimed parece ser o que eu quero, obrigado pessoal por ajuda.

link

    
por 24.08.2012 / 09:24
3

Você pode criar um script que executa uptime & despeja-o em um arquivo.

uptime >> uptime.log

Depois disso, configure um cron job para isso. Para saber mais sobre como criar um cron job: Criar Cron Job

Ou você pode inscrever-se em um serviço on-line para fazer isso para você: Projeto de tempo de atividade

    
por 23.08.2012 / 13:16
2

de acordo com a página de manual last :

The pseudo user reboot logs in each time the system is rebooted. Thus last reboot will show a log of all reboots since the log file was created.

A última coluna do comando #last reboot fornece o histórico de tempo de atividade:

#last reboot
reboot   system boot  **************** Sat Sep 21 03:31 - 08:27 (1+04:56)   
reboot   system boot  **************** Wed Aug  7 07:08 - 08:27 (46+01:19)
    
por 22.09.2013 / 14:40
2

Isso registra a saída de 'tempo de atividade' a cada cinco minutos. Essa saída também inclui o número de usuários atualmente conectados e as médias de carga do seu computador nos últimos 1, 5 e 15 minutos:

sudo bash #root
mkdir /var/log/uptime
crontab -e

Adicione esta linha:

*/5  * * * * echo 'date +\%Y\%m\%d;uptime' >> /var/log/uptime/uptime.log 2>&1

E para dividir + gzip o log em arquivos semanais:

cat <<'EOF'. > /etc/logrotate.d/uptime
/var/log/uptime/uptime.log {
    weekly
    dateext
    rotate 99999
    compress
}
EOF

Depois de algum tempo, visualize seu tempo de atividade para cada dia assim:

uplog() { (cd /var/log/uptime/;zcat uptime.log*gz;cat uptime.log) }
uplog|cut -c1-8|uniq -c|perl -aple'$_.=" ".("=" x ($F[0]/5))'

O número 288 (12 * 24) significa que o computador ficou ativo durante todo o dia (embora reinicializações menores que cinco minutos possam passar despercebidas por este método).

Ou, da mesma forma, para cada mês assim:

uplog|cut -c1-6|uniq -c|perl -aple'$_.=" ".("=" x ($F[0]/150))'
    
por 13.01.2016 / 09:35
1

Haverá entradas com registro de dados no syslog (/ var / log / messages *) das quais você pode extrair essas informações.

Você também pode adicionar entradas K a /etc/rc0.d para, por exemplo, executar logger para adicionar um registro syslog específico no desligamento. Veja link ou equivalente para a distribuição Linux que você está usando

$ vim /etc/init.d/uptime
$ cat /etc/init.d/uptime

# chkconfig: 0 99 1
# description: Record uptime at shutdown.

start() {
        uptime >> /var/log/uptime 2>&1
}

case "$1" in
  start)
        start
        ;;
  *)
        echo Usage: $0 start
        ;;
esac

$ chmod +x /etc/init.d/uptime

$ chkconfig --add uptime

$ chkconfig --list uptime
uptime          0:on    1:off   2:off   3:off   4:off   5:off   6:off

$ ls /etc/rc*d/*uptime*
/etc/rc0.d/S99uptime  /etc/rc3.d/K01uptime  /etc/rc6.d/K01uptime
/etc/rc1.d/K01uptime  /etc/rc4.d/K01uptime
/etc/rc2.d/K01uptime  /etc/rc5.d/K01uptime


$ /etc/rc0.d/S99uptime start

$ cat /var/log/uptime
 13:15:28 up 135 days, 12:06,  1 user,  load average: 0.07, 0.04, 0.01
    
por 23.08.2012 / 13:22
0

O Tuptime pode fazer isso ao executar "tuptime -e", por exemplo:

# tuptime -e
Startup:  1  at  08:55:01 AM 08/04/2015
Uptime:   24 seconds
Shutdown: OK  at  08:55:25 AM 08/04/2015

Downtime: 5 seconds

Startup:  2  at  08:55:31 AM 08/04/2015
Uptime:   20 seconds
Shutdown: OK  at  08:55:51 AM 08/04/2015

Dependendo das suas localidades, o formato da data pode mudar.

Atenciosamente,

    
por 04.08.2015 / 11:01

Tags