GNU/Linux >> Belajar Linux >  >> Linux

HowTo:Tutorial Perintah Logrotate Ultimate dengan 10 Contoh

Mengelola file log secara efektif adalah tugas penting bagi sysadmin Linux.

Dalam artikel ini, mari kita bahas cara melakukan operasi file log berikut menggunakan UNIX logrotate utilitas.

  • Memutar file log saat ukuran file mencapai ukuran tertentu
  • Lanjutkan menulis informasi log ke file yang baru dibuat setelah memutar file log lama
  • Kompres file log yang diputar
  • Tentukan opsi kompresi untuk file log yang diputar
  • Memutar file log lama dengan tanggal pada nama file
  • Jalankan skrip shell khusus segera setelah rotasi log
  • Hapus file log lama yang diputar

1. Logrotate file Konfigurasi

Berikut adalah file kunci yang harus Anda ketahui agar logrotate berfungsi dengan baik.

/usr/sbin/logrotate – Perintah logrotate itu sendiri.

/etc/cron.daily/logrotat e – Skrip shell ini menjalankan perintah logrotate setiap hari.

$ cat /etc/cron.daily/logrotate
#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

/etc/logrotate.conf – Konfigurasi rotasi log untuk semua file log ditentukan dalam file ini.

$ cat /etc/logrotate.conf
weekly
rotate 4
create
include /etc/logrotate.d
/var/log/wtmp {
    monthly
    minsize 1M
    create 0664 root utmp
    rotate 1
}

/etc/logrotate.d – Ketika paket individu diinstal pada sistem, mereka menjatuhkan informasi konfigurasi rotasi log di direktori ini. Sebagai contoh, informasi konfigurasi yum log rotate ditampilkan di bawah ini.

$ cat /etc/logrotate.d/yum
/var/log/yum.log {
    missingok
    notifempty
    size 30k
    yearly
    create 0600 root root
}

2. Opsi ukuran logrotate:Putar file log saat ukuran file mencapai batas tertentu

Jika Anda ingin memutar file log (misalnya, /tmp/output.log) untuk setiap 1 KB, buat logrotate.conf seperti yang ditunjukkan di bawah ini.

$ cat logrotate.conf
/tmp/output.log {
        size 1k
        create 700 bala bala
        rotate 4
}

Konfigurasi logrotate ini memiliki tiga opsi berikut:

  • ukuran 1k – logrotate hanya berjalan jika ukuran file sama dengan (atau lebih besar dari) ukuran ini.
  • buat – putar file asli dan buat file baru dengan izin, pengguna, dan grup yang ditentukan.
  • rotate – membatasi jumlah rotasi file log. Jadi, ini hanya akan menyimpan 4 file log terbaru yang dirotasi.

Sebelum logrotasi, berikut adalah ukuran dari output.log:

$ ls -l /tmp/output.log
-rw-r--r-- 1 bala bala 25868 2010-06-09 21:19 /tmp/output.log

Sekarang, jalankan perintah logrotate seperti yang ditunjukkan di bawah ini. Option -s menentukan nama file untuk menulis status logrotate.

$ logrotate -s /var/log/logstatus logrotate.conf

Catatan :setiap kali Anda membutuhkan rotasi log untuk beberapa file, siapkan konfigurasi logrotate dan jalankan perintah logroate secara manual.
Setelah logrotasi, berikut adalah ukuran output.log:

$ ls -l /tmp/output*
-rw-r--r--  1 bala bala 25868 2010-06-09 21:20 output.log.1
-rwx------ 1 bala bala        0 2010-06-09 21:20 output.log

Pada akhirnya, ini akan tetap mengikuti penyiapan file log yang dirotasi.

  • keluaran.log.4.
  • keluaran.log.3
  • keluaran.log.2
  • keluaran.log.1
  • keluaran.log

Harap diingat bahwa setelah rotasi log, file log yang sesuai dengan layanan akan tetap menunjuk ke file yang diputar (output.log.1) dan terus menulis di dalamnya. Anda dapat menggunakan metode di atas, jika Anda ingin memutar apache access_log atau error_log setiap 5 MB.

Idealnya, Anda harus memodifikasi /etc/logrotate.conf untuk menentukan informasi logrotate untuk file log tertentu.

Juga, jika Anda memiliki file log besar, Anda dapat menggunakan:10 Contoh Luar Biasa untuk Melihat File Log Besar di Unix

3. Opsi logrotate copytruncate:Lanjutkan untuk menulis informasi log di file yang baru dibuat setelah memutar file log lama.

$ cat logrotate.conf
/tmp/output.log {
         size 1k
         copytruncate
         rotate 4
}

copytruncate menginstruksikan logrotate untuk membuat salinan file asli (yaitu memutar file log asli) dan memotong file asli ke ukuran nol byte. Ini membantu masing-masing layanan milik file log itu dapat menulis ke file yang tepat.

Saat memanipulasi file log, Anda mungkin menemukan pengganti sed, tips menghapus sed berguna.

4. Opsi kompres logrotate:Kompres file log yang diputar

Jika Anda menggunakan opsi kompres seperti yang ditunjukkan di bawah ini, file yang diputar akan dikompresi dengan utilitas gzip.

$ cat logrotate.conf
/tmp/output.log {
        size 1k
        copytruncate
        create 700 bala bala
        rotate 4
        compress
}

Output dari file log terkompresi:

$ ls /tmp/output*
output.log.1.gz output.log

5. Opsi logrotate dateext:Putar file log lama dengan tanggal di nama file log

$ cat logrotate.conf
/tmp/output.log {
        size 1k
        copytruncate
        create 700 bala bala
        dateext
        rotate 4
        compress
}

Setelah konfigurasi di atas, Anda akan melihat tanggal dalam file log yang diputar seperti yang ditunjukkan di bawah ini.

$ ls -lrt /tmp/output*
-rw-r--r--  1 bala bala 8980 2010-06-09 22:10 output.log-20100609.gz
-rwxrwxrwx 1 bala bala     0 2010-06-09 22:11 output.log

Ini akan bekerja hanya sekali dalam sehari. Karena ketika mencoba untuk memutar waktu berikutnya pada hari yang sama, file yang diputar sebelumnya akan memiliki nama file yang sama. Jadi, logrotate tidak akan berhasil setelah dijalankan pertama kali di hari yang sama.

Biasanya Anda dapat menggunakan tail -f untuk melihat output dari file log secara realtime. Anda bahkan dapat menggabungkan beberapa output tail -f dan menampilkannya pada satu terminal.

6. Logrotate opsi bulanan, harian, mingguan:Putar file log mingguan/harian/bulanan

Untuk melakukan rotasi setiap bulan sekali,

$ cat logrotate.conf
/tmp/output.log {
        monthly
        copytruncate
        rotate 4
        compress
}

Tambahkan kata kunci mingguan seperti yang ditunjukkan di bawah ini untuk rotasi log mingguan.

$ cat logrotate.conf
/tmp/output.log {
        weekly
        copytruncate
        rotate 4
        compress
}

Tambahkan kata kunci harian seperti yang ditunjukkan di bawah ini untuk rotasi log setiap hari. Anda juga dapat memutar log setiap jam.

$ cat logrotate.conf
/tmp/output.log {
        daily
        copytruncate
        rotate 4
        compress
}

7. Opsi skrip logrotate postrotate:Jalankan skrip shell khusus segera setelah rotasi log

Logrotate memungkinkan Anda untuk menjalankan skrip shell kustom Anda sendiri setelah menyelesaikan rotasi file log. Konfigurasi berikut menunjukkan bahwa ia akan mengeksekusi myscript.sh setelah logrotasi.

$ cat logrotate.conf
/tmp/output.log {
        size 1k
        copytruncate
        rotate 4
        compress
        postrotate
               /home/bala/myscript.sh
        endscript
}

8. Opsi logrotate maxage:Hapus file log lama yang diputar

Logrotate secara otomatis menghapus file yang diputar setelah beberapa hari tertentu. Contoh berikut menunjukkan bahwa file log yang dirotasi akan dihapus setelah 100 hari.

$ cat logrotate.conf
/tmp/output.log {
        size 1k
        copytruncate
        rotate 4
        compress
        maxage 100
}

9. Logrotate missingok option:Jangan kembalikan kesalahan jika file log hilang

Anda dapat mengabaikan pesan kesalahan saat file sebenarnya tidak tersedia dengan menggunakan opsi ini seperti yang ditunjukkan di bawah ini.

$ cat logrotate.conf
/tmp/output.log {
        size 1k
        copytruncate
        rotate 4
        compress
        missingok
}

10. Logrotate compresscmd dan opsi compressext:Tentukan perintah kompresi untuk rotasi file log

$ cat logrotate.conf
/tmp/output.log {
        size 1k
        copytruncate
        create
        compress
        compresscmd /bin/bzip2
        compressext .bz2
        rotate 4
}

Opsi kompresi berikut ditentukan di atas:

  • kompres – Menunjukkan bahwa kompresi harus dilakukan.
  • compresscmd – Tentukan jenis perintah kompresi apa yang harus digunakan. Misalnya:/bin/bzip2
  • compressext – Tentukan ekstensi pada file log yang diputar. Tanpa opsi ini, file yang diputar akan memiliki ekstensi default sebagai .gz. Jadi, jika Anda menggunakan bzip2 compressioncmd, tentukan ekstensi sebagai .bz2 seperti yang ditunjukkan pada contoh di atas.

Linux
  1. Urutkan Perintah di Linux dengan Contoh

  2. Tutorial Perintah Mengetik Dengan Contoh Untuk Pemula

  3. Tutorial Perintah Shuf Dengan Contoh Untuk Pemula

  1. Putar dan arsipkan log dengan perintah Linux logrotate

  2. Contoh Penting dari Perintah File di Linux

  3. Tutorial Bash Array Terbaik dengan 15 Contoh

  1. Cara Menggunakan Perintah chgrp dengan Contoh

  2. Tutorial Bash HereDoc Dengan Contoh

  3. Tutorial Perintah Numfmt Dengan Contoh Untuk Pemula