Logrotate-3.21.0

Introdução ao "Logrotate"

O pacote logrotate permite rotação, compressão, remoção e envio automático de arquivos de registro.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Logrotate"

Exigidas

popt-1.19

Opcionais

Um MTA (tempo de execução)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/logrotate

Instalação do "Logrotate"

Instale logrotate executando o seguinte comando:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make test. Um teste falha porque o muito antigo compress não está presente e dois testes falham se um "MTA" não estiver instalado.

Agora, como o(a) usuário(a) root:

make install

Configurando o "Logrotate"

Logrotate precisa de um arquivo de configuração, o qual precisa ser passado como um argumento para o comando quando executado. Crie o arquivo como o(a) usuário(a) root:

cat > /etc/logrotate.conf << EOF
# Começo /etc/logrotate.conf

# Rotacione os arquivos de registro semanalmente
weekly

# Não envie registros para ninguém
nomail

# Se o arquivo de registro estiver vazio, [então] ele não será rotacionado
notifempty

# Número de cópias de segurança que serão mantidas
# Isto manterá somente as duas cópias de segurança mais recentes
rotate 2

# Crie novos arquivos vazios depois de rotacionar os antigos
# Isto criará arquivos de registro vazios, com o(a) proprietário(a)
# configurado como "root", grupo configurado como "sys" e permissões 664
create 0664 root sys

# Comprime as cópias de segurança com o "gzip"
compress

# Nenhum pacote possui "lastlog" ou "wtmp" - rotacione-os aqui
/var/log/wtmp {
    monthly
    create 0664 root utmp
    rotate 1
}

/var/log/lastlog {
    monthly
    rotate 1
}

# Alguns pacotes colocam informações de rotação de registro neste diretório
# de forma que incluímos qualquer arquivo nele.
include /etc/logrotate.d

# Fim /etc/logrotate.conf
EOF

chmod -v 0644 /etc/logrotate.conf

Agora crie o diretório /etc/logrotate.d como o(a) usuário(a) root:

mkdir -p /etc/logrotate.d

Neste ponto, comandos adicionais de rotação de registro conseguem ser inseridos, normalmente no diretório /etc/logrotate.d. Por exemplo:

cat > /etc/logrotate.d/sys.log << EOF
/var/log/sys.log {
   # Se o arquivo de registro for maior que 100 KB, [então] rotacione-o
   size   100k
   rotate 5
   weekly
   postrotate
      /bin/killall -HUP syslogd
   endscript
}
EOF

chmod -v 0644 /etc/logrotate.d/sys.log

Você consegue designar vários arquivos em uma entrada:

cat > /etc/logrotate.d/example.log << EOF
file1
file2
file3 {
   ...
  postrotate
    ...
   endscript
}
EOF

chmod -v 0644 /etc/logrotate.d/example.log

Você consegue usar na mesma linha a lista de arquivos: arquivo1 arquivo2 arquivo3. Veja-se a página de manual do "logrotate" ou https://www.techrepublic.com/article/manage-linux-log-files-with-logrotate/ para mais exemplos.

O comando logrotate /etc/logrotate.conf pode ser executado manualmente, porém o comando deveria ser executado diariamente. Outros comandos úteis são logrotate -d /etc/logrotate.conf para fins de depuração e logrotate -f /etc/logrotate.conf forçando os comandos do "logrotate" a serem executados imediatamente. Combinando as opções anteriores -df, você consegue depurar o efeito do comando "force". Durante a depuração, os comandos são somente simulados e não são realmente executados. Como resultado, erros a respeito de arquivos inexistentes aparecerão eventualmente porque os arquivos não foram realmente criados.

Para executar o comando logrotate diariamente, execute os seguintes comandos, como o(a) usuário(a) root, para criar um cronômetro do "systemd" para executar diariamente às 3h (hora local):

cat > /usr/lib/systemd/system/logrotate.service << "EOF" &&
[Unit]
Description=Executa o comando "logrotate"
Documentation=man:logrotate(8)
DefaultDependencies=no
After=local-fs.target
Before=shutdown.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/logrotate /etc/logrotate.conf
EOF
cat > /usr/lib/systemd/system/logrotate.timer << "EOF" &&
[Unit]
Description=Executa o comando "logrotate" diariamente as 3:00 AM

[Timer]
OnCalendar=*-*-* 3:00:00
Persistent=true

[Install]
WantedBy=timers.target
EOF
systemctl enable logrotate.timer

Conteúdo

Aplicativos Instalados: logrotate
Biblioteca Instalada: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

logrotate

realiza as funções de manutenção do registro definidas nos arquivos de configuração