Selasa, 07 Mei 2024

Log Rotation & Management in Linux like a Pro

 Halo Guys, Sebagai tukang rawat server A.K.A System Administrator pasti sering banget melakukan perawatan / manage log file dari suatu services. Dan services tersebut selalu aktif & melakukan proses setiap hari nya tampa boleh ada stop nya.. 

Oleh karena itu pasti ada output log dari setiap proses yang dilakukan oleh services tersebut, output nya dalam sehari bisa banyak banget dan kadang bisa membuat storage menjadi penuh jika didiamkan dalam waktu lama.

Jika tempat penyimpanan pada log penuh, services bisa saja menjadi stop running, oleh karena itu kita perlu mangatur file-file log tersebut. dan memilih file mana yg perlu dihapus, yang mana yang perlu di pertahankan.

Nah, biasanya yang saya lakukan sebeleum melakukan hapus log, saya melakukan listing log file nya, agar tercatat file log apa saja yang akan dihapus.
dengan menggunakan command berikut :

Dengan command ini kita akan mencari file ".log", yang dibuat pada 30 hari yang lalu di directory "/path/to/logs/",
Lalu karena ada tambahan pipeline dengan command awk print, maka setiap output baris dari command find tersebut akan ditambahkan text print "rm -r" .

Tampilan hasil output nya seperti gambar berikut :

kalau kita lihat gambar di atas output nya sudah menyerupai "bash command" , kita bisa membuat file tersebut menjadi seperti bash script dengan menambahkan permission ( +x )
$ chmod +x output_file

lalu jalankan script tersebut, mulai menghapus file log nya.
$ bash ./output_file

Kenapa ribet-ribet harus membuat list file nya dahulu ?
Bukti/Evidence ini hal yang penting.
Biasanya standart prosedur pada production setiap aktivitas harus ada yang namanya "Persetujuan/Approval dan Bukti/Evidence".

Kenapa tidak menggunakan aplikasi logrotate ?
Aplikasi atau command "find" secara default sudah banyak terinstall di beberapa distro Linux. Berbeda dengan command "logrotate" yang harus memerlukan instalasi tambahan.

Seperti nya ini terlihat sederhana banget ya?
Default command find ini, jika ditambahkan dengan Crontab, atau Airflow dengan paramiko ssh. bisa menjadi tools automation yang keren & tidak bisa dibilang sederhana lagi.

Ok, ta rasa cukup sampai sini tulisan nya..
Kalian bisa kembangkan cara ini & semoga bermanfaat.

Share: