Mempunyai backup adalah hal yg sangat wajib, terutama untuk productional server yg kalian jalankan. Tidak ada satupun yg menjamin bahwa sebuah sistem akan selalu aman dan terus bekerja sesuai keinginan. Dengan adanya backup yg selalu tersedia, valid dan up to date maka jika ada hal buruk yg tidak diinginkan terjadi maka backup tsb menjadi solusi penyelamat yg sangat berguna.
Misalnya anda memiliki 10 website atau bahkan ratusan website dalam sebuah VPS atau dedicated server. Bagaimana caranya melakukan backup keseluruhan secara set and forget alias secara otomatis berjalan? Ya, biasanya hosting jaman sekarang sudah menambahkan fitur backup untuk server yg disewakan namun saya selalu menambahkan extra layer dengan men-seting autobackup sendiri.
Contoh ada 10 website yg document rootnya berada di /var/www/html, cara membuat backup yg akan berjalan harian secara terus menerus bisa menggunakan sebuah bash script simpel ini:
#!/bin/bash # bash for loop for f in /var/www/html/*; do if [ -d "$f" ]; then cd "$f" && tar -czf - . | ssh kamilia@65.21.90.33 "cat > /home/backup/$(basename "$f")-$(date +"%d-%m-%Y").tar.gz" >/dev/null fi done
Cara penggunaannya adalah:
- Login as root di ssh server anda
- Modifikasi script contoh di atas sesuai server anda sendiri. Misal pada document root maupun remote dir tempat penyimpanan backup yg pada contoh di atas berada di /home/backup
- Server backup yg saya gunakan di sini menggunakan ip 65.21.90.33 dengan user ssh untuk loginnya adalah kamilia (sesuaikan ini dengan detail server backup anda ya)
- Pastikan dari server hosting sudah bisa konek ke server backup menggunakan ssh key alias tanpa password. Kalo belum bisa seting seperti ini
- Test ya lakukan koneksi dari server hosting ssh kamilia@65.21.90.33 kalo bisa login password-less maka lanjut
- Save scriptnya di /usr/bin/autobackup
- Berikan permission chmod +x /usr/bin/autobackup
- Test dulu dengan ketik command autobackup, jika running dan backup tersimpan di server backup maka lanjut
- Sekarang vim /etc/crontab
- Dan input: 0 0 * * * root /usr/bin/autobackup
- Lalu jalankan service crond restart
Setiap hari script ini akan membackup seluruh folder beserta filenya untuk tiap domain yg hosted di server dan otomatis menyimpannya di server backup. Script ini tidak perlu diedit bilamana ada website baru yg dihost, dia akan juga ikut terbackup.
Script ini tidak membackup database SQL. Hanya seluruh files dan dir saja.
Semoga bermanfaat.