Eu encontrei uma pergunta semelhante no link do stackoverflow . Melhor uptimed parece ser o que eu quero, obrigado pessoal por ajuda.
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.
Eu encontrei uma pergunta semelhante no link do stackoverflow . Melhor uptimed parece ser o que eu quero, obrigado pessoal por ajuda.
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
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)
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))'
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
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,