Auto Backup Website Pada CPanel Menggunakan Bash Ter-enskripsi

Memang, hampir semua penyedia webhosting melakukan backup data kita, tapi untuk jaga-jaga dari hal-hal yang tidak kita inginkan, ada baiknya kita juga melakukan backup data kita sendiri. Nah, hal ini saya lakukan pada salah satu web yang saya handle (ceile saya handle katanya :D). Saya tidak ingin hanya berharap pada penyedia hosting, saya juga melakukan backup website tersebut, yang saya maksud dengan website disini adalah full public_html direktori dan databasenya. Oke, langsung saja, berikut ini tahapannya:

Buat file backup.sh pada direktori root  (pada cpanel biasanya : /home/namauser/backup.sh) anda dengan isi:

#!/bin/bash
mysqldump --user="DB_USER" --password="DB_PASS" DB_NAME> ~/public_html/db.sql
cd ~
tar --exclude='backup.enc' -zcf ~/tmp/backup.tar.gz public_html
rm -f ~/public_html/db.sql
openssl aes-256-cbc -a -salt -in ~/tmp/backup.tar.gz -out ~/public_html/backup.tar.gz.enc -pass "pass:PASSWORD"
rm -f ~/tmp/backup.tar.gz

Keterangan :

DB_USER : nama user database anda

DB_PASS : password untuk user mengakses database

DB_NAME : nama database

PASSWORD : password untuk meng-encrypt file backup anda

Disini saya meng-enskrip file backup supaya jika ada orang yang berusaha mendownloadnya, akan sedikit mempersulit mereka untuk membuka file backupnya. Nantinya, jika anda ingin menggunakan file hasil backup tadi, bisa men-descrypt nya, petunjuknya ada di sini.

Oke, setelah anda menyimpan file backup.sh tersebut, ubah akses file tersebut menjadi 755. Lalu sisa anda tambahkan cron melalui cpanel.

Untuk contoh, saya melakukan auto backup setiap jam 12 malam, maka pada setting cron saya masukkan :

Minute  : 0
Hour : 0
Day : *
Month : *
Weekday : *
Command : ~/backup.sh > ~/backup.log 2>&1

Log dari aktifitas backup tadi ada pada /home/namauser/backup.log

Hasil backup akan ada pada : http://domainanda.com/backup.tar.gz.enc sesuai dengan target out pada open ssl tadi yaitu ~/public_html/backup.tar.gz.enc.

Saya menggunakan vps yang saya sewa untuk mendownload file tersebut setiap hari, sehingga file tersebut ada di vps untuk backup. Anda bisa saja menggunakan webhosting lain yang anda punya dengan beberapa baris script php dan cron untuk mendownload file tersebut, untuk contoh script php nya mungkin dilain waktu akan saya tuliskan.

Posted under Webserver