Configurando a rotação do log sem acesso root (por rotação do log do usuário)

18

Qual a melhor forma de logrotate ser configurada, por usuário, para rotacionar arquivos no diretório inicial do usuário, sob o controle de um usuário crontab -e?

Bryce
fonte

Respostas:

27

Tente este procedimento:

  1. criar /home/user/logrotatepasta

    mkdir /home/user/logrotate
    
  2. crie um /home/user/logrotate/my.confarquivo de configuração com a diretiva logrotate conforme necessário

  3. crie /home/user/logrotate/cronjobpara executar logrotate todos os dias às 02:30 (este é um exemplo)

    30 2 * * * /usr/sbin/logrotate -s /home/user/logrotate/status /home/user/logrotate/my.conf > /dev/null 2>&1
    
  4. verifique sua sintaxe do arquivo de configuração:

    logrotate -d /home/user/logrotate/my.conf
    
  5. configure crontabpara executar logrotate ( Aviso : Isso remove as entradas existentes no seu crontab. Use crontab -epara adicionar manualmente a linha da etapa 3 a um crontab existente):

    crontab /home/user/logrotate/cronjob 
    

Após esse último comando, logrotateele girará o arquivo conforme descrito em /home/user/logrotate/my.confe salvará o status do arquivo de log em /home/user/logrotate/status.

Usar:

crontab -r   # remove crontab activities for user
crontab -l   # to list crontab activity for user
crontab -e   # edit user crontab entries

Aqui está a página do manual logrotate e crontab .

Lety
fonte
3
Muito instrutivo. Talvez deva ser mencionado que 'crontab <file>' remove todos os cronjobs configurados anteriormente. Isso só aconteceu comigo - felizmente eu tinha um backup :)
pederpansen
1
@pederpansen obrigado por ter melhorado a minha resposta :)
Lety
2
Graças ao -sparâmetro irá evitar error: error creating unique temp file: Permission denied.
Marco Marsala