log de tempo de abertura e fechamento de um programa

4

Eu quero saber o tempo total que um programa foi executado diariamente para registro pessoal (do início ao fechamento, mesmo que esteja em segundo plano). Por exemplo: Firefox.

  • Existe um log do sistema que controla os horários de abertura e fechamento?
  • Existe algum utilitário pré-construído que possa ser usado?

E, se não houver, alguns ponteiros para escrever um script?

    
por Aavaas 12.01.2016 / 15:38

2 respostas

7

Os utilitários de contabilidade ( por exemplo, implementação do GNU ) rastreiam a atividade do usuário e fornecem um número de ferramentas para relatar isso; por exemplo,

lastcomm

listará os últimos comandos executados e

sa

(executar como root ) fornecerá um resumo da atividade.

Para mostrar a quantidade de tempo que um determinado processo foi executado, faça algo como

sudo sa | grep chromium

Isso gerará vários valores:

   5    6781.67re       3.78cp         0avio    265418k   chromium
   4    4521.35re       0.00cp         0avio    176024k   chromium*

A primeira coluna é o número de vezes que o processo dado foi executado, o segundo é o número de minutos que os processos executaram no total (que podem ser simultâneos). A linha que termina com * resume os processos que foram bifurcados sem executar outro binário. Como os navegadores tendem a executar vários processos simultaneamente, a instância com estrela representa os processos extras usados; você pode ter uma ideia do tempo real gasto subtraindo os valores neste caso.

Esses valores são agregados a todos os usuários, de modo que eles só são realmente úteis para sua finalidade, se você for o único usuário em seu sistema.

    
por 12.01.2016 / 15:50
0

Acabei usando o seguinte script para iniciar o programa e substituí-lo pelo ponteiro padrão do aplicativo.

#!/bin/bash
echo -n "$(date +%s)" >> ~/myapplog.log
/application_path/
echo ",$(date +%s)" >> ~/myapplog.log

Basicamente registra os horários de início e término do aplicativo na forma de registro de data e hora para cada sessão em uma nova linha separada por uma vírgula. por exemplo: 1452663495,1452663502

Você pode mudar (data +% S) para o formato que você gosta (veja man page for date)

    
por 13.01.2016 / 06:44