Exemplos de logrotate do Linux

Exemplos De Logrotate Do Linux



As informações de log são uma parte muito importante de qualquer sistema operacional para diagnosticar o problema de qualquer aplicativo em execução e as entradas de log ajudam a descobrir a solução do problema. A maioria dos aplicativos do sistema operacional Linux gera o log e o administrador do sistema obtém as informações necessárias sobre o aplicativo a partir das entradas do log. No entanto, as entradas de log às vezes criam problemas porque o tamanho das entradas aumenta com o tempo. Portanto, as entradas de log são necessárias para gerenciar.

O logrotate é uma ferramenta de linha de comando do Linux para gerenciar as entradas de log. Esta ferramenta ajuda a executar diferentes tipos de tarefas nas entradas de log pelo administrador, como limitar os arquivos de log girados, compactar os arquivos de log girados, excluir os arquivos de log desnecessários, executar o script de shell específico com base nos arquivos de log, etc. do comando “logrorate” para gerenciar os arquivos de log de diferentes maneiras são mostrados neste tutorial usando vários exemplos.

Verifique a versão instalada do Logrotate

O comando “logrotate” é instalado por padrão na nova versão do sistema operacional Ubuntu. Execute o seguinte comando para verificar a versão instalada do comando “logrotate”:







$ logrotate --versão



As entradas de log dos diferentes aplicativos são armazenadas na pasta “/var/log” por padrão. O seguinte conteúdo semelhante aparecerá se você verificar o conteúdo da pasta.



$ eu / era / registro





Defina a configuração “Logrotate”

Valor de configuração Propósito
diariamente/semanalmente/mensalmente/anualmente Ele define o tempo de rotação dos logs.
girar número Define a quantidade de arquivos que serão mantidos antes da remoção dos arquivos de log antigos.
comprimir É usado para compactar os arquivos de log.
compresscmd É usado para definir o comando “comprimir”. O gzip é o comando padrão.
descompactarcmd É usado para definir o comando “descompactar”. O gunzip é o comando padrão.
compressão de atraso É usado para atrasar o processo de compactação dos arquivos de log.
notificação vazia É usado para não girar o arquivo vazio.
estou faltando Se estiver definido, nenhum erro será gerado para os arquivos de log ausentes.
tamanho É usado para definir o limite para iniciar a rotação dos arquivos de log.
texto de data É usado para adicionar um valor de data como sufixo do arquivo giratório.
copiar truncar É usado para criar uma cópia do arquivo original.
pré-girado É usado para executar um script antes de girar os arquivos de log.
pós-rotação É usado para executar um script após girar os arquivos de log.
criar É usado para criar os arquivos de log com privilégio de root.

Sintaxe:

A sintaxe do comando “logrotate” é fornecida da seguinte forma:



logrotate [ OPÇÃO ] caminho_do_arquivo_de_configuração

Diferentes tipos de opções podem ser usados ​​para diferentes propósitos com o comando “logrotate”.

Opções de rotação de log

Algumas opções úteis do comando “logrotate” são mencionadas a seguir:

-f, –força É usado para fazer a rotação com força quando necessário.
-d, –depurar É usado para ativar o modo de depuração durante a rotação.
-m, –mail É usado para enviar um email durante a rotação.
-s, –state É usado para arquivos de estado alternativos.
-uso É usado para imprimir as informações de uso.
-?, -ajuda É usado para imprimir as mensagens de ajuda.
-v, –verbose É usado para imprimir em modo detalhado.

Arquivo de configuração do Logrotate

O arquivo de configuração principal do logrotate está localizado no local “/etc/logrotate.conf”. Execute o seguinte comando para abrir o arquivo no editor nano:

$ nano / etc. / logrotate.conf

A configuração padrão do comando “logrotate” é mostrada no arquivo “logrotate.conf”. A diretiva “include” é usada no arquivo para recuperar a configuração que está localizada no diretório “/etc/logrotate.d”.

Exemplo 1: Crie um arquivo de configuração simples do Logrotate

Crie um arquivo de log de amostra denominado “/var/log/test.log” com os dados de log de amostra. Execute o seguinte comando para abrir o editor nano e criar um novo arquivo “logrotate.conf” no local da pasta “/etc/tmp”. Crie a pasta “/tmp” com privilégios de root se ela não tiver sido criada antes.

$ nano / etc. / tmp / logrotate.conf

Adicione o seguinte conteúdo ao arquivo “/var/log/test.log”. De acordo com a configuração, o arquivo “test.log” será girado diariamente se o tamanho do arquivo exceder 5K:

/ era / registro / teste.log {

diário

tamanho 5K

dele administrador raiz

}

Execute o seguinte comando para verificar o tamanho do arquivo de log:

$ eu -eu / era / registro / teste.log

Execute o comando “logrotate” após criar o arquivo de configuração.

$ sudo logrotate / etc. / tmp / logrotate.conf

Execute o seguinte comando novamente para verificar o tamanho do arquivo de log após executar o comando “logrotate”:

$ eu -eu / era / registro / teste.log

O tamanho do arquivo “test.log” é 1K+. Portanto, nenhuma rotação é feita com base na configuração.

Altere o valor do tamanho para 1K no arquivo “/etc/tmp/logrotate.conf” e execute o comando “ls” novamente para verificar o tamanho do arquivo “/var/log/test.log”. De acordo com a saída, o arquivo de log é girado e excluído porque o limite de tamanho foi excedido.

Exemplo 2: Uso de Logrotate Copytruncate

Crie ou modifique o arquivo “/etc/tmp/logrotate.conf” com as seguintes configurações para mostrar o uso do copytruncate. De acordo com as novas configurações, o logrotate cria uma cópia do arquivo original, zerando o tamanho do arquivo original.

/ era / registro / teste.log {

girar 5

tamanho 1k

copiar truncar

dele administrador raiz

}

Execute o seguinte comando para verificar o tamanho do arquivo “test.log”:

$ eu -eu / era / registro / teste.log

Execute o comando “logrotate” após criar o arquivo de configuração.

$ sudo logrotate / etc. / tmp / logrotate.conf

Execute o seguinte comando novamente para verificar o tamanho do arquivo “test.log” após executar o comando “logrotate”:

$ eu -eu / era / registro / teste.log

O tamanho do arquivo original torna-se 0 após a execução do comando “logrotate” para a configuração copytruncate.

Exemplo 3: Uso de Logrotate Compress

Crie ou modifique o arquivo “/etc/tmp/logrotate.conf” com as seguintes configurações para mostrar o uso da compactação. De acordo com as novas configurações, o logrotate cria um arquivo compactado do arquivo original.

/ era / registro / teste.log {

girar 5

tamanho 1k

comprimir

criar 770 administrador raiz

}

Execute o seguinte comando para verificar a lista de arquivos e pastas de “/var/log”:

$ eu / era / registro /

Execute o comando “logrotate” após criar o arquivo de configuração.

$ sudo logrotate / etc. / tmp / logrotate.conf

Execute o seguinte comando novamente para verificar a lista de arquivos e pastas de “/var/log”:

$ eu / era / registro /

O arquivo compactado do arquivo “test.log” é criado com o nome “test.log.1.gz” e o arquivo original é removido.

Exemplo 4: Uso de Logrotate Dateext

Crie ou modifique o arquivo “/etc/tmp/logrotate.conf” com as seguintes configurações para mostrar o uso de dateext. De acordo com as novas configurações, o logrotate cria um arquivo compactado do arquivo original com o valor da data.

era / registro / teste.log {

dele administrador raiz

girar 5

tamanho 1k

comprimir

criar 770 administrador raiz

texto de data

}

Execute o comando “logrotate” após criar o arquivo de configuração.

$ sudo logrotate / etc. / tmp / logrotate.conf

Execute o seguinte comando para verificar a lista de arquivos e pastas de “/var/log”:

$ eu -eu / era / registro /

O arquivo compactado do arquivo “test.log” é criado com o nome “test.log.20240129.gz” e o arquivo original é removido.

Exemplo 5: Uso do Logrotate Maxage

Crie ou modifique o arquivo “/etc/tmp/logrotate.conf” com as seguintes configurações para mostrar o uso do arquivo maxage. De acordo com as configurações, o logrotate mantém cinco entradas de log se o tamanho do arquivo de log exceder 1K após um dia.

/ era / registro / teste.log {

dele administrador raiz

girar 5

tamanho 1k

comprimir

máximo 1

}

Execute o seguinte comando “logrotate” para armazenar a saída em outro arquivo de log chamado “out.log”:

$ sudo logrotate -s = / era / registro / saída.log / etc. / tmp / logrotate.conf

De acordo com a saída a seguir, o arquivo “out.log” é criado após a execução do comando “logrotate”:

Exemplo 6: Uso do Logrotate Missingok

Crie ou modifique o arquivo “/etc/tmp/logrotate.conf” com as seguintes configurações. Aqui, o arquivo de log “testfile.log” não existe na pasta “/var/log”.

/ era / registro / arquivo de teste.log {

dele administrador raiz

girar 5

tamanho 1k

comprimir

}

Uma mensagem de erro é impressa após a execução do comando “logrotate”.

Adicione a configuração “missingok” no arquivo de configuração logrotate e execute o comando “logrotate” novamente. Nenhum erro é impresso para o arquivo de log ausente.

Exemplo 7: Uso de Logrotate Prerotate

Crie um arquivo Bash chamado “test.sh” com o seguinte script que imprime uma mensagem simples. O arquivo é usado neste exemplo de logrotate para mostrar o uso do prerotate no arquivo de configuração do logrotate.

teste.sh



#!/bin/bash

eco 'exemplos de logrotate...'

Após criar o arquivo, execute o seguinte comando para definir a permissão de execução deste arquivo para todos os usuários:

$ chmod a+x / lar / entendimento / teste.sh

Agora, crie ou modifique o arquivo “/etc/tmp/logrotate.conf” com as seguintes configurações. De acordo com as configurações, o logrotate mantém cinco entradas de log se o tamanho do arquivo de log exceder 1K e o arquivo “test.sh” for executado antes da rotação.

/ era / registro / teste.log {

dele administrador raiz

girar 5

tamanho 1k

pré-girado

/ lar / entendimento / teste.sh

endscript

}

A saída do arquivo “test.sh” é mostrada após a execução do comando “logrotate”:

Conclusão

Os vários usos do comando “logrotate” são mostrados neste tutorial usando vários exemplos que ajudarão o usuário Linux a conhecer os usos do comando e gerenciar os arquivos de log adequadamente.