Os ficheiros de registo (ou logs) em Linux são ficheiros de texto que registam eventos e mensagens que ocorrem no sistema ou nas aplicações. São utilizados para monitorizar, diagnosticar e analisar o desempenho do sistema.
Os ficheiros de registo podem conter informações sobre:
/var/log/syslog
ou /var/log/messages
: Mensagens gerais do sistema./var/log/auth.log
: Registos de eventos de autenticação (logins, utilização do sudo
, etc.)./var/log/kern.log
: Mensagens do kernel
./var/log/dpkg.log
: Registos de instalação e remoção de pacotes (para sistemas baseados em Debian)./var/log/apache2/
: Registos do servidor web Apache (se instalado)./var/log/mysql/
: Registos da base de dados MySQL (se instalada).Ver os registos: Pode utilizar os comandos cat
, less
, more
, tail
e outros para ver o conteúdo dos ficheiros de registo.
tail -f /var/log/syslog
Este comando apresentará as linhas mais recentes do ficheiro e actualizará a saída em tempo real.
Filtragem e pesquisa: O comando grep
permite-lhe pesquisar linhas específicas nos registos.
grep "error" /var/log/syslog
Rotação de registos: Os registos podem ocupar muito espaço no disco, pelo que a rotação de registos é utilizada (por exemplo, utilizando o utilitário logrotate) para arquivar registos antigos e libertar espaço. Os ficheiros de registo são uma ferramenta importante para os administradores de sistemas e os programadores controlarem a saúde do sistema e resolverem problemas.
A criação de um ficheiro de registo em Linux pode ser feita de várias formas, dependendo de como pretende registar a informação.
Pode criar um ficheiro de registo e escrever dados no mesmo, utilizando o comando echo
e redireccionando a saída:
echo "This message will be recorded in a log file" >> /path/to/your/logfile.log
>> adds text to the end of the file. If the file does not exist, it will be created.
Para sobrescrever o ficheiro, use single >.
O comando tee
permite-lhe escrever a saída de um comando para um ficheiro e apresentá-la no terminal ao mesmo tempo:
echo "This message will be recorded in a log file" | tee -a /path/to/your/logfile.log
O sinalizador -a significa "anexar" para evitar a substituição do ficheiro.
Pode criar um script em Bash
que irá escrever mensagens para um ficheiro de registo:
#!/bin/bash
LOGFILE="/path/to/your/logfile.log"
echo "$(date): Running the script" >> "$LOGFILE"
# Your code is here
echo "$(date): Script Completion" >> "$LOGFILE"
Salve esse código em um arquivo, como myscript.sh
, e torne-o executável:
chmod +x myscript.sh
Em seguida, execute-o:
./myscript.sh
Se quiser escrever logs para os logs do sistema, como o syslog
, pode usar o comando logger
:
logger "This message will be recorded in the system log"
Isto escreverá esta mensagem em /var/log/syslog
ou no ficheiro de registo apropriado, dependendo da configuração do seu sistema.
Se estiver a escrever um programa em linguagens como Python, pode utilizar bibliotecas incorporadas para lidar com o registo:
import logging
logging.basicConfig(filename='/path/to/your/logfile.log', level=logging.DEBUG)
logging.debug('This is a debugging message')
logging.info('This is an informational message')
logging.warning('This is a warning')
logging.error('This is an error message')
logging.critical('This is a critical message')
Estes métodos permitir-lhe-ão criar e gerir ficheiros de registo em Linux de acordo com as suas necessidades.