Wednesday, May 31, 2006

Menghitung Lama Sebuah Folder Kosong

Seorang teman di milist alumni sekolahku bertanya ke forum apakah ada yang pernah membuat shell script untuk menghitung berapa lama sebuah folder/direktori kosong tanpa file didalamnya. Oh ya, tentu di mesin bersistemoperasi unix. Jadi, temanku tersebut ingin membuat semacam alarm untuk menampilkan folder-folder yang kosong melebihi batas waktu (threshold), anggap saja 1 jam batasnya. 1 jam folder tersebut masih kosong, kirim alarm. Dia kesulitan di proses untuk pengecekan berapa lama suatu folder kosong.

Hmm, tertantang juga untuk mencoba. Berhubung hampir setiap hari berhubungan dengan mesin-mesin nix (walau bukan sebaga admin) siapa tahu bisa. Utak-atik, atik-utak, jrenggg, bisa juga! Tentu saja banyak kelemahannya. Yang terlihat mencolok adalah kalau ada di pergantian tahun, 1 januari 2007 jam 00 maksudku. Masih penasaran, tapi tak apalah, toh 2007 masih jauh.

Ok, dibawah ini scriptnya :

for nama_folder in `ls -l | grep drwx | awk '{print $9}'`
do
kosong=`ls $nama_folder | wc -l | sed 's/ //g'`
if [[ $kosong -eq 0 ]]
then
tgl_folder=`ls -l | awk '$9==folder' folder=$nama_folder | awk '{print $6,$7,$8}'`
echo "date --date='$tgl_folder' +%s" > get_time
chmod 744 get_time
t_folder=`get_time`

t_sekarang=`date +%s`
idle_time=`expr $t_sekarang - $t_folder`

echo "folder $nama_folder idle selama $idle_time detik"
fi
done

Untuk dieksekusi via crontab harus ditambahkan path di beberapa command.

Hasil uji coba :
[data@operasi sinau]$ ngitung.sh
folder nyoba1 idle selama 14772 detik
folder nyoba2 idle selama 11292 detik
[data@operasi sinau]$
Dari 3 folder yang aku punya yang tampil cuma 2 karena folder nyoba ada isinya 1 file. Ok kan?

Oh ya, kalau mau menggunakan script ini silahkan saja ambil, gratis!

No comments: