logrotate – rotaciona, comprime e envia por e-mail os logs do sistema
SINTAXE
logrotate [--force] [--debug] [--state arquivo] [--skip-state-lock] [--wait-for-state-lock] [--verbose] [--log arquivo] [--mail comando] arquivo_config [arquivo_config2 ...]
DESCRIÇÃO
logrotate é projetado para facilitar a administração de sistemas que geram um grande número de arquivos de log.
Permite a rotação, compressão, remoção e envio por e-mail automático dos arquivos de log. Cada arquivo de log pode
ser tratado diariamente, semanalmente, mensalmente ou quando atingir um tamanho muito grande.
Normalmente, logrotate é executado como uma tarefa cron diária. Não modificará um log mais de uma vez por dia, a
menos que o critério para esse log seja baseado no tamanho do log e logrotate esteja sendo executado mais de uma vez por dia,
ou a menos que a opção -f ou --force seja usada.
Qualquer número de arquivos de configuração pode ser fornecido na linha de comando. Os arquivos de configuração posteriores podem substituir as
opções fornecidas nos arquivos anteriores, portanto, a ordem na qual os arquivos de configuração do logrotate são listados é
importante. Normalmente, um único arquivo de configuração que inclui quaisquer outros arquivos de configuração necessários
deve ser usado. Consulte abaixo para obter mais informações sobre como usar a diretiva include para fazer isso. Se um diretório for fornecido na linha de comando, cada arquivo nesse diretório será usado como um
arquivo de configuração.
Se nenhum argumento de linha de comando for fornecido, logrotate imprimirá a versão e as informações de direitos autorais,
junto com um breve resumo do uso. Se ocorrerem erros durante a rotação dos logs, logrotate será encerrado
com status diferente de zero, embora o arquivo de estado seja atualizado.
OPÇÕES
-f, --force
Informa ao logrotate para forçar a rotação, mesmo que ele não considere isso necessário. Às vezes, isso é útil depois de adicionar novas entradas a um arquivo de configuração do logrotate, ou se os arquivos de log antigos
foram removidos manualmente, pois os novos arquivos serão criados e o registro continuará corretamente.
-d, --debug
Ativa o modo de depuração, o que significa que nenhuma alteração será feita nos logs e o arquivo de estado do logrotate não será atualizado. Apenas mensagens de depuração serão impressas.
-s, --state arquivo_estado
Informa ao logrotate para usar um arquivo de estado alternativo. Isso é útil se logrotate estiver sendo executado
como um usuário diferente para vários conjuntos de arquivos de log. Para evitar a execução paralela, logrotate adquire um bloqueio no arquivo de estado por padrão; se não puder ser adquirido, logrotate será encerrado
com o valor 3. O arquivo de estado padrão é /var/lib/logrotate/status. Se /dev/null for
fornecido como o arquivo de estado, o logrotate não tentará bloquear ou gravar o arquivo de estado.
--skip-state-lock
Não bloqueia o arquivo de estado, por exemplo, se o bloqueio não for suportado ou for proibido.
--wait-for-state-lock
Aguarda até que o bloqueio no arquivo de estado seja liberado por outro processo logrotate. Esta opção pode fazer com que o logrotate aguarde indefinidamente. Use com cautela.
-v, --verbose
Ativa o modo verboso, por exemplo, para exibir mensagens durante a rotação.
-l, --log file
Informa ao logrotate para registrar a saída verbosa no arquivo `log_file`. A saída verbosa registrada nesse arquivo é a mesma que quando o logrotate é executado com a opção -v. O arquivo de log é sobrescrito a cada execução do logrotate.
-m, --mail command
Informa ao logrotate qual comando usar ao enviar os logs por e-mail. Este comando deve aceitar os seguintes argumentos:
1 o assunto da mensagem fornecido com '-s subject'
2 o destinatário.
O comando deve então ler uma mensagem na entrada padrão e enviá-la por e-mail ao destinatário. O comando de e-mail padrão é /usr/bin/mail.
--usage
Imprime uma mensagem de uso curta.
-?, --help
Imprime a mensagem de ajuda.
--version
Exibe informações da versão.
ARQUIVO DE CONFIGURAÇÃO
O logrotate lê todas as informações sobre os arquivos de log que devem ser gerenciados a partir da série de arquivos de configuração especificados na linha de comando. Cada arquivo de configuração pode definir opções globais (as definições locais substituem as globais, e as definições posteriores substituem as anteriores). As opções globais não afetam os direcionamentos de inclusão anteriores. Um arquivo de configuração simples se parece com isto:
# arquivo de configuração de exemplo do logrotate
compress
/var/log/messages {
rotate 5
weekly
postrotate
/usr/bin/killall -HUP syslogd
endscript
}
"/var/log/httpd/access.log" /var/log/httpd/error.log {
rotate 5
mail _
size 100k
sharedscripts
postrotate
/usr/bin/killall -HUP httpd
endscript
}
/var/log/news/* {
monthly
rotate 2
olddir /var/log/news/old
missingok
sharedscripts
postrotate
kill -HUP $(cat /var/run/inn.pid)
endscript
nocompress
}
~/log/*.log {}
As primeiras linhas definem as opções globais; no exemplo, os logs são compactados após serem rotacionados. Observe que os comentários podem aparecer em qualquer lugar no arquivo de configuração, desde que o primeiro caractere não espaço na linha seja um '#'.
Os valores são separados das diretivas por espaços em branco ou um '=' opcional. Os números devem ser especificados em um formato compreendido por strtoul(3).
A próxima seção do arquivo de configuração define como lidar com o arquivo de log /var/log/messages. O log passará por cinco rotações semanais antes de ser removido. Depois que o arquivo de log tiver sido rotacionado (mas antes que a versão antiga do log seja compactada), o comando /usr/bin/killall -HUP syslogd será executado.
A próxima seção define os parâmetros para /var/log/httpd/access.log e /var/log/httpd/error.log. Cada um é rotacionado sempre que cresce mais de 100 kilobytes de tamanho, e os arquivos de log antigos são enviados (não compactados) para _ após passar por 5 rotações, em vez de serem removidos. O sharedscripts significa que o script postrotate será executado apenas uma vez para esta seção, e não uma vez para cada log que é rotacionado. Observe que os nomes dos arquivos de log podem ser colocados entre aspas (e que as aspas são necessárias se o nome contiver espaços). As regras normais de aspas do shell se aplicam, com os caracteres ', ", e \ suportados.
A próxima seção define os parâmetros para todos os arquivos em /var/log/news. Cada arquivo é rotacionado mensalmente.
A última seção usa a expansão de til para rotacionar arquivos de log no diretório home do usuário atual. Isso só está disponível se sua biblioteca glob suportar a expansão de til. GNU glob suporta isso.
Use curingas com cautela. Se você especificar *, o logrotate rotacionará todos os arquivos, incluindo os que foram rotacionados anteriormente. Uma maneira de evitar isso é usar a diretiva olddir ou um curinga mais preciso (como *.log).
Observe que, por padrão, ao usar systemd(1), a opção ProtectSystem=full é definida no arquivo logrotate.service. Isso impede que o logrotate modifique logs em /etc e /usr.
Aqui estão mais informações sobre as diretivas que podem ser incluídas em um arquivo de configuração do logrotate:
DIRETIVAS DO ARQUIVO DE CONFIGURAÇÃO
Essas diretivas podem ser incluídas em um arquivo de configuração do logrotate:
Rotação
rotate count
Os arquivos de log são rotacionados count vezes antes de serem removidos ou enviados por e-mail para o endereço especificado em uma diretiva de e-mail. Se count for 0, as versões antigas serão removidas em vez de serem rotacionadas. Se count for -1, os logs antigos não serão removidos, exceto que serão afetados por maxage (use com cautela, pode desperdiçar desempenho e espaço em disco). O padrão é 0.
olddir directory
Os logs são movidos para o diretório para rotação. O diretório deve estar no mesmo dispositivo físico do arquivo de log que está sendo rotacionado, a menos que as opções copy, copytruncate ou renamecopy sejam usadas. O diretório é considerado relativo ao diretório que contém o arquivo de log, a menos que um caminho absoluto seja especificado. Quando esta opção é usada, todas as versões antigas do log terminam no diretório. Esta opção pode ser substituída pela opção noolddir.
noolddir
Os logs são rotacionados no diretório em que normalmente residem (isso substitui a opção olddir).
su user group
Rotacione os arquivos de log definidos sob este usuário e grupo em vez de usar o usuário/grupo padrão (geralmente root). user especifica o usuário usado para rotação e group especifica o grupo usado para rotação (veja a seção USUÁRIO E GRUPO para obter detalhes). Se o usuário/grupo que você especificar aqui não tiver privilégios suficientes para criar arquivos com a propriedade que você especificou em uma diretiva create, isso causará um erro. Se o logrotate for executado com privilégios de root, é recomendável usar a diretiva su para rotacionar arquivos em diretórios que são direta ou indiretamente controlados por usuários não privilegiados.
Frequência
hourly Os arquivos de log são rotacionados a cada hora. Observe que, geralmente, o logrotate é configurado para ser executado pelo cron diariamente (ou por logrotate.timer ao usar [systemd]({filename}../../systemd)(1)). Você precisa alterar esta configuração e executar o logrotate a cada hora para realmente rotacionar os logs a cada hora.
diário Os arquivos de log são rotacionados diariamente.
semanal [dia_da_semana]
Os arquivos de log são rotacionados uma vez por dia da semana ou se a data avançar pelo menos 7 dias desde a última rotação (ignorando a hora exata). A interpretação do dia da semana é a seguinte: 0 significa domingo, 1 significa segunda-feira, ..., 6 significa sábado; o valor especial 7 significa a cada 7 dias, independentemente do dia da semana. O padrão é 0 se o argumento do dia da semana for omitido.
mensal
Os arquivos de log são rotacionados na primeira vez que o logrotate é executado em um mês (normalmente no primeiro dia do mês).
anual Os arquivos de log são rotacionados se o ano atual não for o mesmo do último rotação.
tamanho tamanho
Os arquivos de log são rotacionados apenas se crescerem acima do tamanho em bytes. Se tamanho for seguido por k, o tamanho será considerado em kilobytes. Se M for usado, o tamanho será em megabytes e, se G for usado, o tamanho será em gigabytes. Portanto, tamanho 100, tamanho 100k, tamanho 100M e tamanho 100G são todos válidos. Esta opção é mutuamente exclusiva com as opções de intervalo de tempo e faz com que os arquivos de log sejam rotacionados sem considerar o tempo da última rotação, se especificado após os critérios de tempo (a última opção especificada tem precedência).
Seleção de arquivo
missingok
Se o arquivo de log estiver faltando, prossiga para o próximo sem emitir uma mensagem de erro. Veja também nomissingok.
nomissingok
Se um arquivo de log não existir, emita um erro. Este é o padrão.
ignoreduplicates
Ignore quaisquer correspondências subsequentes de um arquivo de log.
ifempty
Rotacione o arquivo de log mesmo que esteja vazio, substituindo a opção notifempty (ifempty é o padrão).
notifempty
Não rotacione o log se estiver vazio (isso substitui a opção ifempty).
minage contagem
Não rotacione logs com menos de
maxage contagem
Remova logs rotacionados com mais de
minsize tamanho
Os arquivos de log são rotacionados quando crescem acima do tamanho em bytes, mas não antes do intervalo de tempo adicionalmente especificado (diário, semanal, mensal ou anual). A opção de tamanho relacionada é semelhante, exceto que é mutuamente exclusiva com as opções de intervalo de tempo e faz com que os arquivos de log sejam rotacionados sem considerar o tempo da última rotação, se especificado após os critérios de tempo (a última opção especificada tem precedência). Quando minsize é usado, tanto o tamanho quanto o carimbo de data/hora de um arquivo de log são considerados.
maxsize tamanho
Os arquivos de log são rotacionados quando crescem acima do tamanho em bytes, mesmo antes do intervalo de tempo adicionalmente especificado (diário, semanal, mensal ou anual). A opção de tamanho relacionada é semelhante, exceto que é mutuamente exclusiva com as opções de intervalo de tempo e faz com que os arquivos de log sejam rotacionados sem considerar o tempo da última rotação, se especificado após os critérios de tempo (a última opção especificada tem precedência). Quando maxsize é usado, tanto o tamanho quanto o carimbo de data/hora de um arquivo de log são considerados.
tabooext [+] lista
A lista atual de extensões proibidas é alterada (veja a diretiva include para obter informações sobre as extensões proibidas). Se um + precede a lista de extensões, a lista atual de extensões proibidas é aumentada; caso contrário, ela é substituída. No início, a lista de extensões proibidas é: ,v, .bak, .cfsaved, .disabled, .dpkg-bak, .dpkg-del, .dpkg-dist, .dpkg-new, .dpkg-old, .dpkg-tmp, .new, .old, .orig, .rhn-cfg-tmp-*, .rpmnew, .rpmorig, .rpmsave, .swp, .ucf-dist, .ucf-new, .ucf-old, ~
taboopat [+] lista
A lista atual de padrões glob proibidos é alterada (veja a diretiva include para obter informações sobre as extensões e padrões proibidos). Se um + precede a lista de padrões, a lista atual de padrões proibidos é aumentada; caso contrário, ela é substituída. No início, a lista de padrões proibidos está vazia.
Arquivos e Pastas
create mode owner group, create owner group
Imediatamente após a rotação (antes que o script postrotate seja executado), o arquivo de log é criado (com o mesmo nome do arquivo de log que acabou de ser rotacionado). mode especifica o modo do arquivo de log em octal (o mesmo que chmod(2)), owner especifica o usuário que será o proprietário do arquivo de log e group especifica o grupo ao qual o arquivo de log pertencerá (veja a seção USUÁRIO E GRUPO para obter mais detalhes). Qualquer um dos atributos do arquivo de log pode ser omitido, caso em que os atributos do novo arquivo usarão os mesmos valores do arquivo de log original para os atributos omitidos. Esta opção pode ser desabilitada usando a opção nocreate.
nocreate
Novos arquivos de log não são criados (isso anula a opção create).
createolddir mode [owner [group]], createolddir [owner [group]]
Se o diretório especificado pela diretiva olddir não existir, ele será criado. mode especifica o modo do diretório olddir em octal (o mesmo que chmod(2)), owner especifica o usuário que será o proprietário do diretório olddir e group especifica o grupo ao qual o diretório olddir pertencerá (veja a seção USUÁRIO E GRUPO para obter mais detalhes). Se mode não for especificado, 0755 será assumido. Esta opção pode ser desabilitada usando a opção nocreateolddir.
nocreateolddir
O diretório olddir não é criado pelo logrotate quando não existe.
copy Faça uma cópia do arquivo de log, mas não altere o original. Esta opção pode ser usada, por exemplo, para fazer um instantâneo do arquivo de log atual ou quando algum outro utilitário precisa truncar ou analisar o arquivo. Quando esta opção é usada, a opção create não terá efeito, pois o arquivo de log antigo permanecerá no local. A opção copy permite armazenar arquivos de log rotacionados em dispositivos diferentes usando a diretiva olddir.
nocopy Não copie o arquivo de log original e deixe-o no local. (isso anula a opção copy).
copytruncate
Truncar o arquivo de log original para tamanho zero no local após criar uma cópia, em vez de
mover o arquivo de log antigo e, opcionalmente, criar um novo. Pode ser usado quando algum programa não pode ser instruído a fechar seu arquivo de log e, portanto, pode continuar gravando (anexando) ao
arquivo de log anterior indefinidamente. Observe que há um pequeno intervalo de tempo entre copiar
o arquivo e truncá-lo, portanto, alguns dados de registro podem ser perdidos. Quando esta opção for usada,
a opção create não terá efeito, pois o arquivo de log antigo permanecerá no local. A opção copytruncate permite armazenar arquivos de log rotacionados em dispositivos diferentes usando a diretiva olddir. A opção copytruncate implica norenamecopy.
nocopytruncate
Não truncar o arquivo de log original no local após criar uma cópia (isso substitui a
opção copytruncate).
renamecopy
O arquivo de log é renomeado para um nome de arquivo temporário no mesmo diretório, adicionando a extensão ".tmp"
a ele. Após isso, o script postrotate é executado e o arquivo de log é copiado do nome de arquivo temporário para o nome de arquivo final. No final, o nome de arquivo temporário é removido. A opção renamecopy
permite armazenar arquivos de log rotacionados em dispositivos diferentes usando a diretiva olddir. A opção renamecopy implica nocopytruncate.
norenamecopy
Não renomeie e copie o arquivo de log original (isso substitui a opção renamecopy).
shred
Excluir arquivos de log usando shred -u em vez de unlink(). Isso deve garantir que os logs não sejam
legíveis após sua exclusão agendada; isso está desativado por padrão. Veja também noshred.
noshred
Não use shred ao excluir arquivos de log antigos. Veja também shred.
shredcycles count
Solicita que o GNU [shred]({filename}../../shred)(1) sobrescreva os arquivos de log count vezes antes da exclusão. Sem esta opção, o padrão do shred será usado.
allowhardlink
Rotacionar arquivos com vários links rígidos; isso está desativado por padrão. O arquivo de destino pode ser
esvaziado, por exemplo, com shred ou copytruncate. Use com cautela, especialmente quando os arquivos de log
estiverem sendo rotacionados como root.
noallowhardlink
Não rotacionar arquivos com vários links rígidos. Veja também allowhardlink.
Compressão
compress
As versões antigas dos arquivos de log são compactadas com [gzip]({filename}../../gzip)(1) por padrão. Veja também nocompress.
nocompress
As versões antigas dos arquivos de log não são compactadas. Veja também compress.
compresscmd
Especifica qual comando usar para compactar arquivos de log. O padrão é [gzip]({filename}../../gzip)(1). Veja também
compress.
uncompresscmd
Especifica qual comando usar para descompactar arquivos de log. O padrão é gunzip(1).
compressext
Especifica qual extensão usar em arquivos de log compactados, se a compactação estiver habilitada. O
padrão segue o da configuração do comando de compactação.
compressoptions
As opções da linha de comando podem ser passadas para o programa de compactação, se houver um em uso. O padrão, para [gzip]({filename}../../gzip)(1), é "-6" (tendencioso para alta compactação à custa da velocidade). Se
você usar um comando de compactação diferente, pode ser necessário alterar as compressoptions para
corresponder.
delaycompress
Adie o processo de compressão do arquivo de log anterior para o próximo ciclo de rotação. Isso só tem
efeito quando usado em combinação com compress. Pode ser usado quando algum programa não pode
ser instruído a fechar seu arquivo de log e, portanto, pode continuar gravando no arquivo de log
anterior por algum tempo.
nodelaycompress
Não adie o processo de compressão do arquivo de log anterior para o próximo ciclo de rotação (isso
substitui a opção delaycompress).
Nomes de Arquivos
extension ext
Arquivos de log com a extensão ext podem mantê-la após a rotação. Se a compressão for usada, a
extensão de compressão (normalmente .gz) aparece após ext. Por exemplo, se você tiver um
arquivo de log chamado mylog.foo e quiser rotacioná-lo para mylog.1.foo.gz em vez de
mylog.foo.1.gz.
addextension ext
Arquivos de log recebem a extensão final ext após a rotação. Se o arquivo original já
terminar com ext, a extensão não é duplicada, mas simplesmente movida para o final, ou seja,
tanto filename quanto filenameext seriam rotacionados para filename.1ext. Se a compressão for
usada, a extensão de compressão (normalmente .gz) aparece após ext.
start count
Este é o número a ser usado como base para a rotação. Por exemplo, se você especificar 0, os
logs serão criados com uma extensão .0 à medida que são rotacionados a partir dos arquivos de log
originais. Se você especificar 9, os arquivos de log serão criados com uma extensão .9,
pulando de 0 a 8. Os arquivos ainda serão rotacionados o número de vezes especificado com a
diretiva rotate.
dateext
Arquive versões antigas de arquivos de log adicionando uma extensão de data como YYYYMMDD em
vez de simplesmente adicionar um número. A extensão pode ser configurada usando as opções
dateformat e dateyesterday.
nodateext
Não arquive versões antigas de arquivos de log com extensão de data (isso substitui a opção
dateext).
dateformat format_string
Especifique a extensão para dateext usando a notação semelhante à função strftime(3).
Apenas os especificadores %Y %m %d %H %M %S %V %s e %z são permitidos. O valor padrão é
-%Y%m%d, exceto para a configuração horária, que usa -%Y%m%d%H como valor padrão. Observe que
o caractere que separa o nome do arquivo da extensão também faz parte da string dateformat. O
relógio do sistema deve estar configurado após 9 de setembro de 2001 para que %s funcione
corretamente. Observe que os carimbos de data gerados por este formato devem ser
lexicograficamente ordenáveis (ou seja, primeiro o ano, depois o mês e depois o dia. Por exemplo,
2001/12/01 está ok, mas 01/12/2001 não, pois 01/11/2002 seria classificado como inferior,
embora seja posterior). Isso ocorre porque, ao usar a opção rotate, o logrotate classifica todos
os nomes de arquivos rotacionados para descobrir quais arquivos de log são mais antigos e devem ser
removidos.
dateyesterday
Use a data de ontem em vez da data de hoje para criar a extensão dateext, para que o arquivo de log
rotacionado tenha uma data em seu nome que seja a mesma dos carimbos de data dentro dele.
datehourago
Use "hour ago" em vez da data atual para criar a extensão "dateext", para que o arquivo de log rotacionado tenha uma hora em seu nome que seja a mesma das informações de data/hora dentro dele. Útil com rotação horária.
Correio
mail address
Quando um log é rotacionado e deixa de existir, ele é enviado por e-mail para o endereço especificado. Se nenhum e-mail deve ser gerado para um log específico, a diretiva "nomail" pode ser usada.
nomail Não envie os arquivos de log antigos para nenhum endereço.
mailfirst
Ao usar o comando "mail", envie o arquivo que acabou de ser rotacionado, em vez do arquivo que está prestes a expirar.
maillast
Ao usar o comando "mail", envie o arquivo que está prestes a expirar, em vez do arquivo que acabou de ser rotacionado (este é o padrão).
Arquivos de configuração adicionais
include file_or_directory
Lê o arquivo fornecido como argumento como se fosse incluído diretamente no local em que a diretiva "include" aparece. Se um diretório for fornecido, a maioria dos arquivos nesse diretório é lida em ordem alfabética antes que o processamento do arquivo que inclui continue. Os únicos arquivos que são ignorados são aqueles que não são arquivos regulares (como diretórios e pipes nomeados) e arquivos cujos nomes terminam com uma das extensões ou padrões proibidos, conforme especificado pelas diretivas "tabooext" ou "taboopat", respectivamente. O caminho fornecido pode começar com "~/" para torná-lo relativo ao diretório inicial do usuário que está executando o programa. Por motivos de segurança, os arquivos de configuração não devem ser graváveis pelo grupo ou pelo mundo.
Scripts
sharedscripts
Normalmente, os scripts "prerotate" e "postrotate" são executados para cada log que é rotacionado, e o caminho absoluto para o arquivo de log é passado como o primeiro argumento para o script. Isso significa que um único script pode ser executado várias vezes para entradas de arquivos de log que correspondem a vários arquivos (como o exemplo "/var/log/news/\*"). Se "sharedscripts" for especificado, os scripts serão executados apenas uma vez, não importa quantos logs correspondam ao padrão curinga, e o padrão inteiro será passado para eles. No entanto, se nenhum dos logs no padrão precisar ser rotacionado, os scripts não serão executados. Se os scripts forem encerrados com um erro (ou qualquer log falhar ao ser rotacionado), as ações restantes não serão executadas para nenhum dos logs. Esta opção substitui a opção "nosharedscripts".
nosharedscripts
Execute os scripts "prerotate" e "postrotate" para cada arquivo de log que é rotacionado (este é o padrão e substitui a opção "sharedscripts"). O caminho absoluto para o arquivo de log é passado como o primeiro argumento para o script. O caminho absoluto para o arquivo de log rotacionado final é passado como o segundo argumento para o script "postrotate". Se os scripts forem encerrados com um erro, as ações restantes não serão executadas para o log afetado.
firstaction
script
endscript
O script é executado uma vez antes que todos os arquivos de log que correspondem ao padrão curinga sejam rotacionados, antes que o script "prerotate" seja executado e somente se pelo menos um log realmente for rotacionado. Essas diretivas podem aparecer apenas dentro de uma definição de arquivo de log. O padrão inteiro é passado para o script como seu primeiro argumento. Se o script for encerrado com um erro, nenhum processamento adicional será feito. Consulte também "lastaction" e a seção "SCRIPTS".
lastaction
script
endscript
O script é executado uma vez após que todos os arquivos de log que correspondem ao padrão curinga forem rotacionados, após a execução do script postrotate e somente se pelo menos um log for rotacionado. Essas diretivas só podem aparecer dentro de uma definição de arquivo de log. Todo o padrão é passado para o script como seu primeiro argumento. Se o script retornar um erro, apenas uma mensagem de erro será exibida (já que esta é a última ação). Consulte também firstaction e a seção SCRIPTS.
prerotate
script
endscript
O script é executado antes que o arquivo de log e seus logs antigos sejam rotacionados e somente se o log for realmente rotacionado. Essas diretivas só podem aparecer dentro de uma definição de arquivo de log. Normalmente, o caminho absoluto para o arquivo de log é passado como o primeiro argumento para o script. Se sharedscripts for especificado, todo o padrão será passado para o script. Consulte também postrotate e a seção SCRIPTS. Consulte sharedscripts e nosharedscripts para tratamento de erros.
postrotate
script
endscript
O script é executado após a rotação do arquivo de log e antes que o arquivo de log seja compactado. Essas diretivas só podem aparecer dentro de uma definição de arquivo de log. Normalmente, o caminho absoluto para o arquivo de log é passado como o primeiro argumento para o script, e o caminho absoluto para o arquivo de log rotacionado final é passado como o segundo argumento para o script. Se sharedscripts for especificado, todo o padrão será passado como o primeiro argumento para o script, e o segundo argumento será omitido. Consulte também prerotate e a seção SCRIPTS. Consulte sharedscripts e nosharedscripts para tratamento de erros.
preremove
script
endscript
O script é executado uma vez, imediatamente antes da remoção de um arquivo de log. O logrotate passará o nome do arquivo que será removido em breve como o primeiro argumento para o script. Consulte também firstaction e a seção SCRIPTS.
SCRIPTS
As linhas entre a palavra-chave inicial (por exemplo, prerotate) e endscript (ambas devem aparecer em linhas separadas) são executadas (usando /bin/sh). O script herda algumas características do processo logrotate, incluindo stderr, stdout, o diretório atual, o ambiente e o umask. Os scripts são executados como o usuário e grupo que invocou o processo, independentemente de qualquer diretiva su. Se a flag --log foi especificada, o descritor de arquivo 3 é o arquivo de log. O diretório de trabalho atual não é especificado.
USUÁRIO E GRUPO
Os identificadores de usuário e grupo são resolvidos primeiro tentando a representação textual e, caso isso falhe, em seguida, pelo valor numérico.
ARQUIVOS
/var/lib/logrotate/status Arquivo de estado padrão.
/etc/logrotate.conf Opções de configuração.
VEJA TAMBÉM
chmod(2), gunzip(1), gzip(1), mail(1), shred(1), strftime(3), strtoul(3), [https://github.com/logrotate/logrotate]
AUTORES
Erik Troan, Preston Brown, Jan Kaluza.
[https://github.com/logrotate/logrotate]