GNU/Linux >> Belajar Linux >  >> Linux

Cara Memutar File Log Apache di Linux

Pertanyaan: Saya ingin secara otomatis memutar apache access_log dan error_log file. Bisakah Anda menjelaskan dengan contoh bagaimana melakukan ini?

Jawaban: Ini dapat dicapai dengan menggunakan utilitas logrotate seperti yang dijelaskan di bawah ini.

Tambahkan file berikut ke direktori /etc/logrotate.d.

# vi /etc/logrotate.d/apache
/usr/local/apache2/logs/access_log /usr/local/apache2/logs/error_log {
    size 100M
    compress
    dateext
    maxage 30
    postrotate
      /usr/bin/killall -HUP httpd
      ls -ltr /usr/local/apache2/logs | mail -s "$HOSTNAME: Apache restarted and log files rotated" [email protected]
    endscript
}

Catatan: Lihat tutorial logrotate kami (dengan 15 contoh) yang menjelaskan detail selengkapnya tentang cara menggunakan opsi logrotate.

Dalam contoh /etc/logrotate.d/apache di atas:

  • ukuran 100M – Setelah access_log, dan error_log mencapai 100M, maka akan dirotasi. Anda juga dapat menggunakan 100k (untuk Kb), 100G (untuk GB). Selain ukuran, Anda juga dapat merotasi log apache menggunakan frekuensi (harian, mingguan, bulanan).
  • kompres – Menunjukkan bahwa file log yang diputar akan dikompresi. Secara default ini menggunakan gzip. Jadi, file yang dirotasi akan berekstensi .gz.
  • teks tanggal – Menambahkan tanggal dalam format YYYYMMDD ke file log yang diputar. yaitu Alih-alih access_log.1.gz, itu membuat access_log-20110616.gz
  • maksimum – Menunjukkan berapa lama file log yang diputar harus disimpan. Dalam contoh ini, itu akan disimpan selama 30 hari.
  • postrotate dan endscript – Setiap perintah yang berada di antara kedua parameter ini akan dieksekusi setelah log diputar.

Penting: Setelah Anda memutar file log, Anda ingin Apache menulis pesan log baru ke access_log dan error_log yang baru dibuat. Jadi, Anda perlu mengirim sinyal HUP ke apache seperti yang ditunjukkan di sini. Pastikan untuk melakukan /usr/bin/killall -HUP httpd, yang akan memulai ulang apache setelah memutar file log (Baca lebih lanjut tentang kill).

Juga, Anda mungkin ingin mengirim email ke diri Anda sendiri yang menunjukkan bahwa file log diputar, bersama dengan output dari perintah ls -ltr sebagai badan email. yaitu Tambahkan yang berikut ini di antara opsi “postrotate” dan “endscript” (setelah perintah killall).

ls -ltr /usr/local/apache2/logs | mail -s "$HOSTNAME: Apache restarted and log files rotated" [email protected]

Skrip /etc/cron.daily/logrotate berjalan setiap hari yang akan melakukan rotasi log semua file sebagaimana ditentukan dalam /etc/logrotate.conf dan semua file di bawah direktori /etc/logrotate.d.

Setelah menambahkan file /etc/logrotate.d/apache di atas, untuk tujuan pengujian, Anda dapat memanggil skrip logrotate secara manual seperti yang ditunjukkan di bawah ini.

# /etc/cron.daily/logrotate

Setelah file log diputar, lakukan ls untuk memverifikasinya. Seperti yang kami jelaskan di atas, file log yang dirotasi akan disimpan selama 30 hari.

# ls /usr/local/apache2/logs
access_log
error_log
access_log-20110716.gz
error_log-20110716.gz

Linux
  1. Cara Mengelola File Log Menggunakan Logrotate Di Linux

  2. Cara Menulis File Log Di RAM Menggunakan Log2ram Di Linux

  3. Cara gzip semua atau file tertentu di Linux

  1. Cara Mengganti Nama File di Linux

  2. Cara Membuat Zip Banyak File di Linux

  3. Bagaimana cara menghapus banyak file sekaligus di Bash di Linux?

  1. Cara menggunakan rsyslog untuk membuat server agregasi log Linux

  2. Cara Mengosongkan File Log di Linux

  3. File log Linux