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 …