Pada panduan ini akan memanfatkan fungsi software ulititas cron. Seperti biasa selalu diawali dengan melakukan koneksi via SSH ssh root@host
atau penguna Windows dapat memakai Putty.
Membuat script bash
Script ini nantinya akan dijalankan oleh cron, mungkin bisa disebut script hapus.sh
nano hapus.sh
Paste kode berikut ke dalam file hapus.sh
tersebut.
#!/bin/bash
echo > /var/log/nginx/error_log
echo > /var/log/nginx/access_log
Simpan dan keluar dari nano text editor, Ctrl+O
> Enter
> Ctrl+X
Keterangan:
echo >
: menghapus konten (perintah echo
tanpa string (empty) diarahkan ke file)
var/log/nginx/access_log
adalah contoh dimana lokasi log file berada (kebetulan saya memakai nginx web server), jadi silahkan diadaptasikan.
Menghapus konten error log untuk multiple file
Misalnya jumlah file errornya lebih dari satu, VPS dengan control panel biasanya setiap domain mempunyai file error log sendiri-sendiri. Sebagai contoh namanya adalah idnetter.net.err
, idnetter.com.err
dan idnetter.id.err
echo -n | tee /var/log/*.err
atau pakai perintah find
dan truncate
find /var/log -type f -name "*.err" -exec truncate -s 0 "{}" \;
Tinggal dibuat scriptnya.
CHMOD
Agar bisa dieksekusi oleh crontab
chmod +x hapus.sh
Install cronjob
crontab -e
Tambahkan ke baris paling bawah kode berikut
0 * * * * /root/hapus.sh
Keterangan: script hapus.sh
akan dijalankan setiap jam, artinya semua konten yang ada di file logging (error_log dan access_log) akan dihapus – lihat baris:echo > /var/log/nginx/error_log
Selesai.
Sedikit penjelasan.
Error log sejatinya penting untuk pengembang aplikasi dan admin server, karena disana semua tercatat informasi penting mengenai kesalahan-kesalahan dalam kode maupun galat lain terkait aplikasi atau software yang digunakan.
Sedangkan access log mencatat semua pengunjung/siapapun (termasuk robot crawler) yang mengakses website atau IP VPS kita. Access log juga penting untuk mengetahui perilaku visitor/pengakses website, dimana didalam access log tercatat begitu spesifik dimana, kapan dan jenis peramban yang digunakan.
Tapi dalam kasus tertentu, kadang error_log dan access_log begitu menjengkelkan karena bisa jadi dalam jam saja ukuran filenya bisa membengkak menjadi bermega-mega byte. Dalam hal ini tentu kurang baik dan lambat laun akan membuat kapasitas hardisk penuh.
Web server nginx (Engine-X) dan Apache, error dan access log (logging) bisa dikontrol atau bahkan dinon-aktifkan. Tapi jika dinon-aktifkan tentu kita tidak akan tahu penyebab terjadinya error dalam sistem/aplikasi. Bagi website yang mempunyai trafik tinggi untuk access_log mungkin memang perlu dinon-aktifkan atau dibatasi. Berikut contoh konfigurasi logging di Apache dan Nginx
Konfigurasi Nginx
Disable error_log
error_log /dev/null crit;
Membatasi/level error_log
error_log /var/log/nginx/error.log crit;
crit
, hanya mencatat pemasalahan critical
Disable access_log
access_log off;
Konfigurasi Apache
Disable logging
Beri komen pada baris berikut
# CustomLog logs/access_log common
# ErrorLog logs/error_log
atau atur LogLevel
# CustomLog logs/access_log common
ErrorLog logs/error_log
LogLevel crit
Selamat mencoba.
Catatan:
Perintah Linux dalam tutorial ini
Gan, mau tanya kalo hapus access log manual via winscp boleh gak?
soalnya access log saya banyak, access.log.1, access.log.2 dst
tidak apa-apa.
maaf gan oot nih, kenapa ya tiap buka ssh/domain pada vps sering eror. kalo domain ada tulisan connection timed out. tapi kalo di ping lancar. trus kalo diakses via ip singapore lancar juga. tadi saya coba restart vps, dan ternyata lancar lagi. kira2 penyebabnya apa ya?