Metode ini biasanya digunakan untuk daily backup pada sebuah storage yang dikhususkan untuk backup. Retensi backup yang diberikan bisa diatur sesuai keinginan kita. Mengapa harus seperti ini? Jawabannya adalah untuk menghemat space di storage kita. Bayangkan saja kalau setiap hari membackup pasti lama-lama storage kita akan penuh, maka dari itu file-file backup yang lama bisa di burning ke DVD/CD, atau kita menghapusnya seperti topik yang akan saya bahas.
Metode ini menggunakan Shell Script yang akan di eksekusi dengan crontab setiap jangka waktu tertentu, sudah pasti ini akan menjadi patokan retensi backup kita
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.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
SEVENDAY=`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".
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
YESTERDAY=`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