Bagi seorang system administrator, sudah pasti mengetahui bahwa fungsi backup sangatlah penting, terutama bila server sudah mempunyai berbagai macam sistem yang tampilan antarmukanya ( GUI ) sudah berbasis web dan sudah pasti juga melayani banyak user ( multi account ) dengan ldap lagi single-sign-on pula, nah database adalah salah satu bagian terpenting yang harus selalu di backup, coba bayangkan saja tiba-tiba ada kasus user secara tidak sengaja menghapus data penting pada salah satu sistem lalu meminta bantuan restore database sebelum hal itu terjadi.
Contoh kasus saya.
- Ingin backup direktori seluruh web sistem zabbix [ zabbix.mycompany.co.id ]
- Sekalian backup database-nya.
- Backup-nya ingin dijalankan terjadwal & berkala.
- Ingin juga file backup yang sudah [x] hari di remove secara otomatis agar tidak memenuhi HDD.
- Backup-nya pakai bash script & di jalankan terjadwal berkala dengan crontab.
Tips.
- Jika tidak mengunakan user root maka gunakan sudo untuk user sudoers.
- Bash script dibawah ini bisa kreasikan untuk melakukan multi backup atau juga backup semua direktori under /var/www/.
1. Membuat direktori tempat menyimpan backup.
root@webserver: mkdir /backup-allweb #atau root@webserver: mkdir /tmp/backup-allweb #atau root@webserver: mkdir /home/bangandi/backup-allweb
2. Membuat file bash script.
root@webserver: mkdir /backup-script #atau root@webserver: mkdir /tmp/backup-script #atau root@webserver: mkdir /home/bangandi/backup-script.
Kemudian, buat file bash script-nya dengan format " nama-bashscript.sh ", dibawah ini saya membuat bash script backup-zabbix.sh.
root@webserver: nano /backup-script/backup-zabbix.sh #atau root@webserver: mkdir /tmp/backup-script/backup-zabbix.sh #atau root@webserver: mkdir /home/bangandi/backup-script/backup-zabbix.sh
3. Copy bash script dibawah ini ke dalam file bash scriptnya, dan sesuaikan dahulu konfigurasinya seperti filename, srcdir1, srcdir2, desdir.
#!/bin/bash # Bang Andi # www.bangandi.web.id # Backup dir website beserta database TIME=`date +%b-%d-%y` FILENAME=backup-zabbix-dan-DB-$TIME.tar.gz # Nama file backup. SRCDIR1=/var/www/zabbix # Direktori website yang ingin di backup. SRCDIR2=/var/lib/mysql/zabbix # Database yang ingin di backup terkait zabbix. DESDIR=/backup-allweb # Direktori sebagai tempat hasil backup. tar -cpzf $DESDIR/$FILENAME $SRCDIR1 $SRCDIR2 #END
4. Chmod file bash script.
root@webserver : chmod +x /backup-script/backup-zabbix.sh
5. Tes bash script yang sudah dibuat dengan,
root@webserver: cd /backup-script/backup-zabbix.sh root@webserver:/backup-script# ./backup-zabbix.sh tar: Removing leading `/' from member names
6. Periksa hasil backup.
root@webserver:/# cd backup-allweb root@webserver:/backup-allweb# ls backup-zabbix-dan-DB-Jun-10-15.tar.gz backup-zabbix-dan-DB-Jun-11-15.tar.gz backup-zabbix-dan-DB-Jun-12-15.tar.gz
7. Script untuk menghapus [ Remove ] file backup yang lama.
/bin/find /backup-allweb/ -type f -mtime +15 -exec rm -rf {} \;
*Jika ingin 7 hari ganti +15 dengan +7.
8. Jalankan dengan Crontab. Selesai.
0 18 * * 1,2,3,4,5,6 /bin/find /backup-allweb/ -type f -mtime +15 -exec rm -rf {} \;
N.B. Jika menemui kendala, proses backup tidak berjalan atau hasil backup tidak seperti yang diharapkan maka coba periksa kembali bash script & crontab-nya, terkadang kita kurang teliti.
Semoga Membantu!.
No comments:
Post a Comment
1. Berkomentarlah dengan sopan.
2. Dilarang membuat spam, terutama yang mengandung SARA/ Pornografi/ Judi dan Iklan.