Configuración de logrotate sin acceso de root (por rotación de registro de usuario)

18

¿Cómo se puede configurar logrotate, por usuario, para rotar archivos en el directorio de inicio del usuario, bajo el control de un usuario crontab -e?

Bryce
fuente

Respuestas:

27

Prueba este procedimiento:

  1. crear /home/user/logrotatecarpeta

    mkdir /home/user/logrotate
    
  2. cree /home/user/logrotate/my.confun archivo de configuración con la directiva logrotate según lo necesite

  3. crear /home/user/logrotate/cronjobpara ejecutar logrotate todos los días a las 2:30 a.m. (este es un ejemplo)

    30 2 * * * /usr/sbin/logrotate -s /home/user/logrotate/status /home/user/logrotate/my.conf > /dev/null 2>&1
    
  4. verifique la sintaxis del archivo de configuración:

    logrotate -d /home/user/logrotate/my.conf
    
  5. configure crontabpara ejecutar logrotate ( Advertencia : esto elimina las entradas existentes en su crontab. Use crontab -epara agregar manualmente la línea del paso 3 a un crontab existente):

    crontab /home/user/logrotate/cronjob 
    

Después de este último comando, logrotaterotará el archivo como se describe en /home/user/logrotate/my.confy guardará el estado del archivo de registro /home/user/logrotate/status.

Utilizar:

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

Aquí está la página de manual logrotate y crontab .

Lety
fuente
3
Muy instructivo Tal vez debería mencionarse que 'crontab <file>' elimina todos los cronjobs configurados previamente. Esto acaba de ocurrir a mí - afortunadamente tenía una copia de seguridad :)
pederpansen
1
@pederpansen gracias por haber mejorado mi respuesta :)
Lety
2
Gracias al -sparámetro evitará error: error creating unique temp file: Permission denied.
Marco Marsala