Skip to content

Instantly share code, notes, and snippets.

@renatoapcosta
Last active August 13, 2022 02:47
Show Gist options
  • Save renatoapcosta/857b156927e95748801d6d11af9cbf95 to your computer and use it in GitHub Desktop.
Save renatoapcosta/857b156927e95748801d6d11af9cbf95 to your computer and use it in GitHub Desktop.
Linux - Sistema log

Sistema log

Scripts e programas geram seus proprios logs.

O Linux trabalha com um gerenciador de logs, o rsyslog ou syslog.

Gerando arquivos de log

script.sh >> log.out Assim toda saída desse script será jogada neste arquivo de log e não tem saída na tela.

script.sh >> log.out 2>&1 Direcionamos a saída normal e a saída de erro para o mesmo arquivo.

Para jogar os logs em um arquivo e na saída de tela

script.sh | tee -a log.out

Fazendo um script jogar tudo para um arquivo de log

Dentro do script, no inicio colocamos oseguinte código para tudo ser direcionado para o arquivo de log

LOG="$HOME/log.out"
exec 1>> $LOG
exec 2>>&1

Usando processor substituto exec 1>> >(tee -a "$LOG")

rsyslog

/etc/rsyslog.d Pasta onde ficar as configurações

50-default.conf Arquivo dos logs principais do linux

Ai temos o Facility e a Priority

Facility = O criador da mensagem auth, authpriv, cron, daemon, kern, lpr, mail, mark, new, security, syslog, user, uucp e local0 ate local7

Priority = Urgêrcia /Importancia da mensagem debug, info, notice, warning, warn, err, error, crit, alert, emerg, panic

Exemplo configurado no arquivo mail.* -/var/log/mail.log

Esse * siginifica todas as prioridade, podiamos ter mail.info para uma determinada prioridade

Vamos criar um arquivo nesta pasta scripts.conf

Colocamos:

local0.* -/var/log/scripts.log

Estamos associando o local0 para um arquivo de log, podemos usar local0 ate local7 para nossos facility customizados.

Depois precisamos reiniciar rsyslog

systemctl restart rsyslog

ps aux | grep rsyslog Para conferir a data de inicialização do rsyslog

O /var/log/scripts.log deve ter dono/grupo syslog:adm, ele será criado automaticamente.

Para criar um log para o syslog tratar

logger -p local0.err "teste de mensagem de log"

logger -p local0.err -t [TAGPARAAJUDAR] "teste de mensagem de log"

Em nosso script podemos colocar:

echo "Inicializando script" | logger -p local0.warn -t [$0] ou logger -p local0.war -t [$0] "Inicializando script"

Para mandar um log para tela e para o arquivo do comando sort $ALUNOS

sort $ALUNOS | tee -a >(logger -p local0.warn -t [$0])

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment