Backup WordPeress dari cPanel ke Dropbox (free) tanpa plugin

Beberapa hari yang lalu sempat rampai hosting lokal Dew**** down cukup lama, salah satu hosting lokal yang cukup populer.

Beberapa client mereka menyebutkan jika core bisnis mereka terganggu karena gangguan ini.

Banyak customer yang marah-marah karena kejadian tersebut, ada yang benar-benar marah, ada juga yang ikut-ikutan marah, ada juga yang promo karena keadian tersebut. Pokonya sangat menunjukan Indonesia.

Menurut saya, bukan karena down-nya orang-orang tersebut marah. Saya melihat lebih kepada disaster recovery-nya yang sedikit lambat.

Kenapa?

Karena tim support yang kurang responsif (banyak tiket yang masuk) dan disisi lain para engineer mereka sedang pusing mitigasi error.

Lalu apa yang bisa kita lakukan sebagai pelanggan jika ada dalam situasi tersbut?

Selalu backup WordPress!

Sebagai customer, jika waktu down dirasa cukup lama. Langkah terakhir jika tidak ada yang bisa membantu adalah restore manual file backup website Anda. Itulah alasan pentingnya backup rutin, sebagai jaminan jika hal seperti ini terjadi.

WordPress memiliki banyak plugin untuk melakukan backup, Anda bisa mencarinya sendiri di Google dengan sangat mudah. Ada yang free adapula yang berbayar.

Tetapi, di sini saya akan menunjukan bagaimana cara backup tanpa menggunakan plugin. Khususnya untuk hosting yang menggunakan cPanel.

Flow backup dari cPanel ke Dropbox
Flow backup dari cPanel ke Dropbox

Yang dibutuhkan

Tutorial ini tidaklah mudah bagi kebanyakan blogger WordPress. Saya berasumsi bahwa Anda sudah familiar dengan instalasi WordPress dan akses cPanel.

Yang perlu Anda siapkan:

  1. Untuk backup database, di sini Anda perlu mengetahui mysql user, nama database, dan password database untuk user tersebut. Anda bisa mencari tahu data tersebut di wp-config.php.
  2. Akses ke dashboard cPanel.
  3. Account Dropbox.

Note: maksimal besar file yang bisa Anda upload ke Dropbox adalah sebesar 150MB, lebih besar dari itu akan gagal.

Setup Dropbox

Jika Anda belum memiliki Dropbox, Anda bisa registrasi Dropbox melalui link ini.

Next, kita memerlukan access token untuk upload file dari cPanel ke Dropbox. Silahkan masuk ke halaman app console. Jika Anda belum memiliki app, silahkan buat terlebih dahulu, ikuti langkah-langkahnya.

Registrasi account app Dropbox.
ika nama App tidak tersedia, Anda bisa memakai nama domain Anda.
Registrasi account app Dropbox.
ika nama App tidak tersedia, Anda bisa memakai nama domain Anda.

Setelah selesai registrasi app, selanjutnya masuk ke bagian permissions. Lalu centang files.content.write. Tanpe mencentang permission tersebut Anda tidak akan bisa upload file dari cPanel ke Dropbox. Jangan lupa save dengan klik submit.

Access permissions.
Pastikan centan files.content.write untuk bisa upload secara programaticly ke Dropbox.
Access permissions.
Pastikan centan files.content.write untuk bisa upload secara programaticly ke Dropbox.

Jika permission sudah diberikan, masuk ke tab Settings, lalu klik Generate pada bagian OAuth2. copy token yang muncul, simpan. Nantinya akan kita gunakan di tahap selanjutnya.

Generate access token. Simpan di note, nantinya akan digunakan di tahap selanjutnya.
Generate access token. Simpan di note, nantinya akan digunakan di tahap selanjutnya.
Token ini berlaku selama 4 jam dari pertama kalo di generate.

Setup script di cPanel

Sekarang kita akan membuat script yang memerintahkan server untuk backup database dan file web WordPress Anda.

Singkat cerita, script di bawah akan melakukan backup database dan file WordPress Anda. Backup akan disimpan di-directory wordpress-backups pada cPanel Anda.

#!/bin/bash

DB_NAME=
DB_USER=
DB_PASSWORD=
DATE=$(date +%Y%m%d_%H%M%S)
PREFIX=
USERNAME=
WORDPRESS_LOCATION=
DROPBOX_TOKEN=

mkdir -p ~/wordpress-backups/${PREFIX}/${DATE}
mysqldump -u ${DB_USER} -p${DB_PASSWORD} ${DB_NAME} | gzip -c > ~/wordpress-backups/${PREFIX}/${DATE}/${DB_NAME}-${DATE}.sql.gz

tar -zcvf ~/wordpress-backups/${PREFIX}/${DATE}/web.tar.gz ${WORDPRESS_LOCATION}

curl -X POST https://content.dropboxapi.com/2/files/upload \
    --header "Authorization: Bearer ${DROPBOX_TOKEN}" \
    --header "Dropbox-API-Arg: {\"path\": \"/wordpress-backups/${PREFIX}/${DATE}/${DB_NAME}-${DATE}.sql.gz\"}" \
    --header "Content-Type: application/octet-stream" \
    --data-binary @/home/${USERNAME}/wordpress-backups/${PREFIX}/${DATE}/${DB_NAME}-${DATE}.sql.gz

curl -X POST https://content.dropboxapi.com/2/files/upload \
    --header "Authorization: Bearer ${DROPBOX_TOKEN}" \
    --header "Dropbox-API-Arg: {\"path\": \"/wordpress-backups/${PREFIX}/${DATE}/web.tar.gz\"}" \
    --header "Content-Type: application/octet-stream" \
    --data-binary @/home/${USERNAME}/wordpress-backups/${PREFIX}/${DATE}/web.tar.gz

rm /home/${USERNAME}/wordpress-backups/${PREFIX}/${DATE}/${DB_NAME}-${DATE}.sql.gz
rm /home/${USERNAME}/wordpress-backups/${PREFIX}/${DATE}/web.tar.gz

Perhatikan variable pada baris 3 sampai 10. Variable tersebut harus Anda isi. Keterangan variable tersebut adalah sebagai berikut:

  • DB_NAME, nama database WordPress Anda.
  • DB_USER, nama user untuk database DB_NAME.
  • DB_PASSWORD, password untuk user DB_USER dan database DB_NAME.
  • DATE, tidak perlu Anda ganti. Variable ini digunakan untuk memberikan penamaan pada file-backup.
  • PREFIX, bisa Anda isi apa saja. Prefix digunakan untuk membedakan folder backup satu website dengan website lain.
  • USERNAME, username untuk login ke account cPanel Anda.
  • WORDPRESS_LOCATION, path atau lokasi WordPress yang ingin Anda backup di cPanel. Biasanya ada di /home/[USERNAME]/public_html
  • DROPBOX_TOKEN, token yang sebelumnya Anda generate.
backup.sh

Setelah semua variable Anda isi, simpan script di atas di directory utama cPanel Anda. Beri nama backup.sh.

Permission 775.

Selanjutkan berikan permission executable, dengan cara klik permission. Lalu masukan 775.

Advanced, terminal

Selanjutnya, mari kita test script yang sudah kita buat. Masuk ke cPanel. Pada bagian Advanced, klik teriminal.

Akan muncul jendela dengan layar hitam pada cPanel Anda. Jendela ini yang kita sebut terminal. Pada terminal kita bisa memasukan perintah-perintah standar pada sistem operasi linux. Jika Anda tertarik untuk mempelajarinya, baca basic linux command.

command ls untuk listing file yang ada.

Ketik ls untuk melisting file apa saja yang ada. Familiar bukan? ya, Anda berada di home directory cpanel Anda. Anda bisa melihat ada file bernama backup.sh yang baru kita buat dengan GUI cPanel.

Untuk eksekusi script backup.sh, cukup dengan ketik ./backup.sh.

Tampilan perintah backup.sh setelah dieksekusi.

Jika berhasil, akan muncul pada terminal text seperti berikut:

Upload ke Dropbox berhasil.

Periksa Dropbox Anda, file backup database akan muncul di folder App.

File backup WordPress sudah muncul di WordPress.

Selesai, WordPress sudah di-backup ke tempat yang bisa Anda akses sekalipun hosting Anda down.

**

Kelemahan dari cara seperti ini adalah backup tidak rutin dan limitasi Dropbox. Dropbox hanya membolehkan besar maksumal file sebesar 150MB. Selain itu token yang kadaluarsanya 4 jam. Anda harus generate token lagi jika kadaluarsa untuk running script.

Kelebihannya dengan cara ini, Anda tidak perlu mengakses langsung WordPress Anda. Backup dilakukan diluar WordPress, tanpa plugin dan gratis.

Next step, saya akan menunjukan bagaimana caranya agar bisa backup rutin tanpa menggunakan plugin backup, baik plugin yang free atau yang mahal-mahal.

Tinggalkan komentar