Mengkonfigurasi logrotate tanpa akses root (per rotasi log pengguna)

18

Bagaimana cara terbaik logrotate dapat dikonfigurasi, berdasarkan per-pengguna, untuk memutar file di direktori home pengguna, di bawah kendali per-pengguna crontab -e?

Bryce
sumber

Jawaban:

27

Coba prosedur ini:

  1. buat /home/user/logrotatefolder

    mkdir /home/user/logrotate
    
  2. buat /home/user/logrotate/my.conffile konfigurasi dengan direktif logrotate sesuai kebutuhan

  3. buat /home/user/logrotate/cronjobuntuk menjalankan logrotate setiap hari pukul 2:30 pagi (ini adalah contoh)

    30 2 * * * /usr/sbin/logrotate -s /home/user/logrotate/status /home/user/logrotate/my.conf > /dev/null 2>&1
    
  4. periksa sintaks file konfigurasi Anda:

    logrotate -d /home/user/logrotate/my.conf
    
  5. configure crontabto run logrotate ( Peringatan : Ini menghapus entri yang ada di crontab Anda. Gunakan crontab -euntuk menambahkan baris secara manual dari langkah 3 ke crontab yang ada):

    crontab /home/user/logrotate/cronjob 
    

Setelah perintah terakhir ini, logrotateakan memutar file seperti yang dijelaskan dalam /home/user/logrotate/my.confdan menyimpan status file log di /home/user/logrotate/status.

Menggunakan:

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

Berikut ini adalah halaman manual logrotate dan crontab .

Lety
sumber
3
Sangat instruktif. Mungkin harus disebutkan bahwa 'crontab <file>' menghapus semua cronjobs yang sebelumnya dikonfigurasi. Ini baru saja terjadi pada saya - untungnya saya punya cadangan :)
pederpansen
1
@pederpansen terima kasih telah meningkatkan jawaban saya :)
Lety
2
Berkat -sparameter akan menghindarierror: error creating unique temp file: Permission denied .
Marco Marsala