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.confA 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.confAdicione 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.logExecute o comando “logrotate” após criar o arquivo de configuração.
$ sudo logrotate / etc. / tmp / logrotate.confExecute o seguinte comando novamente para verificar o tamanho do arquivo de log após executar o comando “logrotate”:
$ eu -eu / era / registro / teste.logO 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.logExecute o comando “logrotate” após criar o arquivo de configuração.
$ sudo logrotate / etc. / tmp / logrotate.confExecute o seguinte comando novamente para verificar o tamanho do arquivo “test.log” após executar o comando “logrotate”:
$ eu -eu / era / registro / teste.logO 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.confExecute 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.confExecute 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.confDe 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.shAgora, 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.