memutar logfile secara manual dengan rsyslogd

10

Saya ingin memaksakan rotasi logfile menggunakan logrotate -f /var/log/syslog, tetapi itu hanya mengembalikan nada:

error: syslog:1 unknown option 'May' -- ignoring line
error: syslog:1 unexpected text

Saya tahu bahwa pada sistem ini rsyslogd sedang berjalan. Bagaimana cara memutar /var/log/syslog? Saya ingin itu kosong.

kbec
sumber

Jawaban:

23

Anda tidak memberi tahu logrotatefile mana yang akan diputar pada baris perintah. Anda memberikannya file konfigurasi. Jadi dalam kasus Anda, logrotatesedang membaca /var/log/syslogdan mencoba menguraikannya sebagai file konfigurasi dan gagal (maka kesalahan Anda).

Jika Anda ingin memutar /var/log/syslogitu perlu terdaftar dalam logrotatefile konfigurasi di suatu tempat, dan Anda jalankan saja logrotate. Jika diputar baru-baru ini, maka logrotate -funtuk memaksanya melakukannya lagi.

Berikut ini contoh entri untuk /var/log/syslogdari Debian,

/var/log/syslog
{
        rotate 7
        daily
        missingok
        notifempty
        delaycompress
        compress
        postrotate
                invoke-rc.d rsyslog reload > /dev/null
        endscript
}

Jadi, Anda perlu itu dalam file, biasanya baik /etc/logrotate.confatau sebagai potongan file /etc/logrotate.ddengan asumsi /etc/logrotate.confpoin Anda di sana, dan kemudian Anda jalankan logrotate /etc/logrotate.conf.

Karena Anda menjalankan Debian, ini mungkin semua sudah ada, dan semua yang perlu Anda lakukan adalah menjalankan logrotate -f /etc/logrotate.conf(perhatikan, ini akan memutar setiap log yang saat ini dikonfigurasi dalam logrotate).

Jika Anda benar-benar hanya ingin memutar /var/log/syslog, Anda harus membuat file konfigurasi yang hanya melakukan satu log itu, berdasarkan pada konten /etc/logrotate.conf+ /etc/logrotate.d/rsyslog.

EightBitTony
sumber