Cara menghentikan logrotate dari mengubah pemilik log yang diputar

9

Saya memiliki pemilik logfile oleh pengguna 'apache' yang ingin saya putar dengan logrotate.

Saya ingin melakukannya dengan menjalankan logrotate sebagai pengguna yang berbeda, katakan 'web' menggunakan strategi copytruncate.

Itu gagal dengan kesalahan ini:

error: error setting owner of ./logfile.log.1: Operation not permitted

Tetapi hanya karena logrotate mencoba mengubah pemilik file baru menjadi pemilik file yang diputar, yaitu apache. Tapi saya tidak peduli tentang file baru yang memiliki pemilik yang sama, jika logrotate akan membuat salinan dengan 'web' sebagai pemilik yang akan baik-baik saja dan kemudian bisa berfungsi dengan baik.

Jadi apakah ada cara untuk menghentikan logrotate dari mengubah pemilik file yang disalin?

Leven
sumber
1
Meninggalkan ini untuk anak cucu: menggunakan postscriptdan chown "$1"mungkin tidak sesuai di sini karena tidak akan mencegah logrotate gagal untuk mengatur pemilik.
David Lord

Jawaban:

7

Saya menggunakan createarahan dalam /etc/logrotate.d/file saya . Contoh:

create 0664 www-data www-data
Paul
sumber
1

createmungkin akan melakukan apa yang Anda gambarkan dalam kalimat terakhir dari pertanyaan Anda, tetapi opsi ini tidak kompatibel dengan copytruncate, yang juga Anda katakan ingin Anda gunakan.

craq
sumber
0

Saya mengatasi masalah yang sama dengan opsi postrotate dan prerotate:

/opt/bars/web_edu/var/log/nginx*.log {
        su web_edu web_edu
        daily
    compress
        missingok
        rotate 30
        dateext
        notifempty
        create 0644 web_edu web_edu
        sharedscripts
        prerotate
                chown web_edu:web_edu /opt/bars/web_edu/var/log/nginx*.log
        endscript
        postrotate
                [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` || true
                chown web_edu:web_edu /opt/bars/web_edu/var/log/nginx*.gz
                chown web_edu:web_edu /opt/bars/web_edu/var/log/nginx*.log
        endscript
}
Vsevolod Gromov
sumber