Existe um registro de todas as atividades que eu poderia abrir no terminal?

4

Eu gostaria de ter um terminal aberto e estudar os processos e tudo o que acontece em um uso regular do Ubuntu. Quais comandos e arquivos eu posso usar para ver os logs em tempo real?

Obrigado.

    
por Mookey 04.05.2016 / 15:19

4 respostas

4

Para ver registros em tempo real, use tail -f -n [number of lines] [file] .

  • -f é para seguir, que canalizará os dados de log anexados para stdout (por exemplo, janela do console) à medida que os dados são gravados no arquivo
  • -n é o número de linhas a seguir

Um bom lugar para começar seria /var/log/syslog . Este é o arquivo de log padrão para muitos eventos, serviços e aplicativos do sistema.

sudo tail -f -n 1000 /var/log/syslog

Seu serviço ou aplicativo de destino pode usar um arquivo de log diferente. Alguns serviços e aplicativos possuem vários arquivos de log. O servidor da Web Apache, por exemplo, possui logs separados para acesso, erros e eventos SSL. Além disso, alguns arquivos de log são configurados para serem transferidos para um arquivo (geralmente no mesmo diretório) após o arquivo original atingir um determinado tamanho, por exemplo, 1 KB. Verifique a documentação do serviço ou aplicativo (ou pesquise) quanto a locais de arquivos de log específicos.

Além disso, você pode achar útil abrir várias janelas do console e monitorar vários logs de uma só vez enquanto realiza um teste.

Por exemplo, se você estivesse rastreando eventos em um aplicativo da Web executado no Apache e usasse um banco de dados MySQL, convém abrir os dois comandos a seguir em suas próprias janelas do console. Na verdade, você pode querer rastrear esses logs de aplicativos junto com o log do sistema acima.

sudo tail -f -n 1000 /var/log/apache2/error_log
sudo tail -f -n 1000 /var/log/mysqld.log

Como sempre, verifique as páginas tail man para obter uma lista completa de opções:

man tail

    
por Rocky Raccoon 04.05.2016 / 22:20
8

Muitas coisas que você simplesmente não consegue identificar, porque elas são tratadas dentro do aplicativo ou processo sem qualquer comunicação qualquer para "o mundo externo".

uma lista aleatória (totalmente incompleta) de algumas das ferramentas mais importantes que você pode usar para monitorar seções específicas do que está acontecendo:

  • o comando top : de man top : O programa top fornece uma visão dinâmica em tempo real de um sistema em execução. Ele pode exibir informações de resumo do sistema, bem como uma lista de processos ou encadeamentos atualmente sendo gerenciados pelo kernel do Linux. Os tipos de informações de resumo do sistema mostradas e os tipos, ordem e tamanho das informações exibidas para os processos são todos configuráveis pelo usuário e essa configuração pode ser feita em todas as reinicializações.
  • %código%. De man dstat : Dstat permite que você visualize todos os recursos do seu sistema instantaneamente, você pode, por exemplo. comparar o uso do disco em combinação com as interrupções do seu controlador IDE ou comparar os números da largura de banda da rede diretamente com a taxa de transferência do disco (no mesmo intervalo)
  • %código%; Embora dstat não forneça informações em tempo real em andamento , quando usado em um loop em um script, é bastante fácil recuperar um relatório quase em tempo real ou fazer logon no que acontece com janelas abertas / movidas / fechadas.
  • O comando wmctrl , do qual @Serg deve ser capaz de lhe dizer muito mais. De wmctrl : O comando dbus-monitor é usado para monitorar mensagens que passam por um barramento de mensagens D-Bus. Consulte o link para obter mais informações sobre o quadro geral. (resumindo: dbus-monitor é uma maneira simples para aplicativos conversarem entre si. Observe que man dbus-monitor só funciona nos casos em que dbus é usado, não como uma ferramenta geral, como mencionado por @heemayl (obrigado!))
  • O comando dbus-monitor (relativamente desconhecido). De dbus :

       watch
           Watch a key or directory for changes.
    

    Experimente, por exemplo o que acontece na saída de dconf watch , durante a edição das configurações do sistema.

O ponto principal é que existem muitas, muitas ferramentas, cada uma delas para localizar uma seção específica do que está acontecendo. Uma resposta que sirva para todos é completamente impossível, quanto mais uma única janela de terminal para mostrar até mesmo o começo de "toda a imagem".

Qual ferramenta é adequada ao seu propósito depende de quais eventos você deseja monitorar especificamente.

    
por Jacob Vlijm 04.05.2016 / 16:03
6

Tente o comando history , ele exibe o último comando $HISTSIZE (padrão 500) executado no terminal.

O comando

journalctl exibe mensagens de log, se o sistema usar systemd .

ps -aux mostra processos em execução, pode ser usado com

ps -aux|grep xxxx

para selecionar um processo específico.

    
por Araujo1914 04.05.2016 / 15:51
2

Toda a atividade é bastante ampla. Para adicionar as respostas existentes:

  • dmesg envia o log do kernel para o terminal. Página do manual .

  • strace permite o rastreamento em tempo real de todas as chamadas do sistema a partir de um único processo. Página do manual . Página do Ubuntu .

  • perf "strace em esteróides." Perf é uma ferramenta muito poderosa para rastrear eventos em várias granularidades diferentes em todo o sistema, incluindo kernel, processo individual e CPU individual. Página de manual .

por Digital Trauma 04.05.2016 / 20:05