Logrotate ohne Root-Zugriff konfigurieren (pro Benutzer-Log-Rotation)

18

Wie kann logrotate pro Benutzer konfiguriert werden, um Dateien im Ausgangsverzeichnis des Benutzers unter der Kontrolle eines Benutzers zu drehen crontab -e?

Bryce
quelle

Antworten:

27

Versuchen Sie dieses Verfahren:

  1. /home/user/logrotateOrdner erstellen

    mkdir /home/user/logrotate
    
  2. Erstellen /home/user/logrotate/my.confSie nach Bedarf eine Konfigurationsdatei mit der Direktive logrotate

  3. schaffen /home/user/logrotate/cronjobjeden Tag um 02.30 Uhr zu laufen logrotate (dies ist ein Beispiel)

    30 2 * * * /usr/sbin/logrotate -s /home/user/logrotate/status /home/user/logrotate/my.conf > /dev/null 2>&1
    
  4. Überprüfen Sie die Syntax Ihrer Konfigurationsdatei:

    logrotate -d /home/user/logrotate/my.conf
    
  5. crontabZum Ausführen konfigurieren logrotate ( Warnung : Dadurch werden vorhandene Einträge in Ihrer crontab entfernt. Verwenden Sie diese Option crontab -e, um die Zeile aus Schritt 3 manuell zu einer vorhandenen crontab hinzuzufügen.):

    crontab /home/user/logrotate/cronjob 
    

Nach diesem letzten Befehl logrotatewird die Datei wie in beschrieben gedreht /home/user/logrotate/my.confund der Status der Protokolldatei in gespeichert /home/user/logrotate/status.

Verwenden:

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

Hier ist die Manpage zu Logrotate und Crontab .

Lety
quelle
3
Sehr lehrreich. Vielleicht sollte erwähnt werden, dass 'crontab <file>' alle zuvor konfigurierten Cronjobs entfernt. Das ist mir gerade passiert - zum Glück hatte ich ein Backup :)
pederpansen
1
@ Pederpansen Dank für die Verbesserung meiner Antwort :)
Lety
2
Dank des -sParameters wird vermieden error: error creating unique temp file: Permission denied.
Marco Marsala