

Skenario :
Kita melakukan daily backup pada folder /home/apocalypsix/backup/. Didalam folder tersebut pasti akan tersimpan file backup dengan timestamp yang berbeda-beda. Setiap 7 hari jam 12:01 malam crontab akan mengeksekusi shell script dibawah ini.
Sample script :
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/binSEVENDAY=`date “+%d.%m.%Y” –date=”-7 days”`
rm /home/apocalypsix/backup/backup_$SEVENDAY.tar.gz
- Pada baris pertama dan kedua kita menentukan eksekutor shell script.
- Pada baris ketiga kita sedang membuat aturan retensi hari, untuk bagian “–date=”-7 days” anda bisa mengubah angkanya menjadi hari yang anda inginkan.
- Pada baris keempat kita akan menghapus semua file yang bernama backup_ dengan memasukkan variabel retensi serta ekstensi file.
Untuk mengatur shell script ini berjalan setiap 7 hari, kita menggunakan crontab. Asumsi bahwa shell script tersimpan di /home/apocalypsix/shell/delete7day.sh. Jangan lupa untuk menambahkan permission x pada shell script anda, chmod 700 /home/apocalypsix/shell/delete7day.sh.
1 0 * * 0 /home/apocalypsix/shell/delete7day.sh
Dari crontab diatas, shell script kita akan di eksekusi pada hari ke 0 (hari minggu), pada jam 12:01 malam.
[ TAMBAHAN ]
Parameter tambahan untuk settingan retensi ada banyak. Parameter yang saya tau adalah bahwa pada bagian –date=”x days”, pada bagian “x” mempunyai parameter tersendiri, seperti jika kita membuat file untuk 5 hari kedepan maka value dari “x” maka tidak boleh memakai tanda minus (-). Tanda minus hanya digunakan jika anda ingin melakukan sesuatu pada beberapa hari kebelakang. Lain hal nya jika anda ingin melakukan penghapusan tadi pada setiap file sehari sebelum tanggal sekarang. Value dari “x” tadi harus menjadi “yesterday”.
Sample script :
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/binYESTERDAY=`date “+%d.%m.%Y” –date=”yesterday”`
rm /home/apocalypsix/backup/backup_$YESTERDAY.tar.gz
Dalam shell script diatas retensi penghapusan menjadi 1 hari. Tentunya ini harus disesuaikan pula dengan settingan crontab anda karena settingan crontab tersebut saling terkait dengan shell script anda. Crontab anda harusnya menjadi seperti ini :
1 0 * * * /home/apocalypsix/shell/delete1day.sh