Script Menghapus Log
Terlalu banyak yang harus dilakukan untuk tiap hari menghapus sampah log. Memang diperlukan pada saat kita ingin melacak kesalahan pada sistem, tapi apabila terlalu besar maka space yang terpakai juga akan membengkak dan bisa memakan bagian yang seharusnya bisa dimanfaatkan. Terkhususnya untuk router kecil saya, serta beberapa server yang ada di Kantor.
Lalu saya memodifikasi kecil beberapa bagian script yang saya dapatkan dari Internet, tapi maaf saya benar-benar lupa siapa pemilik asli dari script ini. Jadi apabila ada yang tahu, silahkan hubungi saya agar bisa memasukkan pesan copyright ke script ini …
Silahkan login sebagai root lalu bikin file persiapan. Untuk membedakan source dan script executable saya menambahkan src pada bagian akhir namanya:
# touch cleanup-src
# nano cleanup-src
Kemudian saya ketikkan script berikut:
#!/bin/bash #Cleanup, version 3 # cleanup /var/log message and wtmp, but with safer option # last update @ July 24, 2008 Yan F LOG_DIR=/var/log ROOT_UID=0 # only user with $UID 0 have root privileges LINES=50 # default number of lines saved E_XCD=66 # can't change directory? E_NOTROOT=67 # non-root exit error # Run as root, of course! if [ "$UID" -ne "$ROOT_UID" ] then echo "You MUST be root to run this script!." exit $E_NOTROOT fi # Test if command line argument present (non-empty) if [ -n "$1" ] then lines=$1 else echo "No line number specified, use default=$LINES." lines=$LINES # Default, if not specified on command line fi cd $LOG_DIR # check if not in /var/log if [ "$PWD" != "$LOG_DIR" ] # if [ "$PWD" != "$LOG_DIR" ] then echo "Can't change to $LOG_DIR." exit $E_XCD fi tail -n $lines messages > mesg.temp # saves last section mv mesg.temp messages # becomes new log directory echo "$LOG_DIR messages cleaned..." cat /dev/null > wtmp echo "$LOG_DIR wtmp cleaned..." echo "Logs cleaned up." exit 0 # return 0 indicates success to the shell
Lalu untuk file yang executablenya saya copy kan ke /usr/local/bin dengan nama cleanup
# cp cleanup-src /usr/local/bin/cleanup
Lalu berikan mode executable …
# chmod u+x /usr/local/bin/cleanup
Untuk menjalankannya tinggal lakukan perintah seperti biasa.
# cleanup
Script tersebut akan melakukan penghapusan terhadap file /var/log/messages secara aman, maksudnya, penghapusan hanya akan dilakukan pada baris paling atas atau log yang lama, sedangkan di file wtmp akan langsung terhapus. Sedangkan baris yang menyimpan log terbaru tidak dihapus. Sedangkan jumlah baris yang disisakan bisa kita ubah sesuai kebutuhan dengan memberikan argument tambahan, yang apabila tidak ditambahi maka akan digunakan 50 yang merupakan nilai default. Contoh apabila kita inginĀ menyisakan 60 baris terakhir …
# cleanup 60
Semoga bermanfaat …