Bagaimana cara mengubah nama dan mengompresi log lama secara efisien setelah mengaktifkan kompresi di logrotate?


0

Saya baru-baru ini mengaktifkan kompresi di logrotate.conf pada beberapa sistem. Log lama yang tidak terkompresi masih tetap dengan penomorannya yang lama. Saya mencari untuk menjalankan skrip untuk meletakkan log lama ini di mana mereka akan secara numerik dalam rotasi jika kompresi belum diaktifkan. Log ini akan mencakup messages, boot.log, spooler, dan lain-lain.

[user@test ~]$ ls -ltr /var/log/messages*
-rw------- 1 root root 283380 Jan 22 03:49 /var/log/messages.4
-rw------- 1 root root 212641 Jan 29 03:59 /var/log/messages.3
-rw------- 1 root root 278964 Feb  5 04:01 /var/log/messages.2
-rw------- 1 root root   7828 Feb 16 04:02 /var/log/messages.7.gz
-rw------- 1 root root  12417 Feb 17 04:02 /var/log/messages.6.gz
-rw------- 1 root root   2289 Feb 18 04:02 /var/log/messages.5.gz
-rw------- 1 root root   2135 Feb 19 04:02 /var/log/messages.4.gz
-rw------- 1 root root   2138 Feb 20 04:02 /var/log/messages.3.gz
-rw------- 1 root root   2403 Feb 21 04:02 /var/log/messages.2.gz
-rw------- 1 root root   2339 Feb 22 04:02 /var/log/messages.1.gz
-rw------- 1 root root   8496 Feb 22 10:19 /var/log/messages

Jika saya secara manual mengubah nama ini saya akan melakukan mv messages.2 messages.8.tmpuntuk setiap log sehingga tidak ada file saat ini bernama pesan.8 ditimpa. Setelah semua file diganti nama maka saya akan melakukan mv messages.8.tmp messages.8diikuti oleh gzip -9 messages.8.

Saya telah bermain-main dengan untuk dan sementara loop dan sed, tetapi saya masih seorang penulis naskah pemula.

Angka untuk log terkompresi terbaru dan terlama akan bervariasi dari satu sistem ke sistem lainnya.

Di masa depan, saya akan secara manual mengompresi log yang lebih lama sebelum menyalakan kompres di logrotate.conf.

Singkatnya, dua pertanyaan:

  1. Apakah ada cara agar logrotate.conf mengenali file-file lama ini dan mengompresnya dengan sendirinya?
  2. Apa cara terbaik untuk skrip rotasi manual ke tempat file log lama akan berurutan, diikuti oleh kompresi?

Saya mengerti bahwa tidak ada cara untuk melakukan ini dengan logrotate. Apa yang saya minta sekarang adalah cara terbaik untuk skrip penggantian nama dan gzipping log ini ke tempat mereka berada dalam urutan. Saya harus melakukan ini pada sejumlah besar sistem, jadi jika saya bisa menjalankan satu skrip yang akan menghemat banyak waktu.
Linux2012

Jawaban:


1

Sejauh yang saya tahu, logrotate tidak bisa meletakkan file lama ke tempatnya. Jadi, Anda perlu melakukannya dengan tangan / dengan skrip kecil.

Harap perhatikan, bahwa tergantung pada konfigurasi Anda, logrotate hanya memutar file log lama untuk waktu terbatas dan kemudian menghapusnya. Jadi mengembalikan file cadangan lama mungkin tidak berguna sampai Anda mengubah konfigurasi logrotate Anda sehingga tidak pernah menghapus log lama (variabel konfigurasi rotate).


Seperti yang dikatakan @jofel, cukup masukkan mereka. Gzip akan menambahkan ekstensi .gz secara default, dan itulah yang akan dicari oleh logrotate.
Magellan

0

Rotasi log tidak bisa tetapi gzip messages.?akan menanganinya untuk Anda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.