Salah satu hal penting dalam perawatan sebuah website adalah membuat backup. Biasanya provider yang bagus memiliki sistim backup sbb:
Namun kita sebagai pemilik atau pengelola sebuah website juga saya anjurkan agar membuat backup secara mandiri, baik itu otomatis ataupun manual.
Mengapa begitu? Karena kita tidak akan tahu masalah yang akan timbul di kemudian hari seperti apa.
Ada pengalaman pribadi saya sendiri, perusahaan hosting yang saya gunakan tutup dan saya tidak bisa mengambil data website yang ada, juga tidak bisa mendapatkan data backup nya dari perusahaan tersebut.
Berdasarkan pengalaman tersebut, maka sebaiknyalah kita rutin membuat backup secara mandiri, bisa disimpan di komputer kita, atau di server/cloud kita yang lainnya.
Tentunya kita berharap bahwa kita tidak sampai menggunakan backup tersebut yang berarti website dan hosting kita tidak bermasalah.
Backup data website yang berbasiskan WordPress bermacam-macam caranya, tetapi prinsip semua cara yang berbeda-beda adalah kita menyimpan data dari database dan data file kita.
Namun kali ini saya akan berbagi tentang bagaimana cara kita membackup data website dengan WP CLI dan SSH. Cara ini khusus yang menggunakan OS LINUX, cPanel ataupun yang sejenis.
Namun sebelumnya bagi yang belum mengetahui tentang WP CLI dan SSH, berikut penjelasan singkatnya:
Kami kutip dari Wikipedia, Secure Shell Protocol (SSH) adalah protokol jaringan kriptografi untuk mengoperasikan layanan jaringan secara aman melalui jaringan yang tidak aman. Aplikasinya yang paling menonjol adalah login jarak jauh dan eksekusi baris perintah.
Kami kutip dari wp-cli.org, WP-CLI adalah antarmuka baris perintah untuk WordPress. Anda dapat memperbarui plugin, mengonfigurasi instalasi multisite, dan banyak lagi, tanpa menggunakan browser web.
Jadi, singkatnya keduanya adalah antarmuka untuk menjalankan perintah-perintah menggunakan teks, bukan grafis (GUI).
Sebelum kamu menggunakan SSH, bisa di cek juga sebelumnya apakah hostingnya sudah menyediakan fitur Terminal. Karena dengan fitur ini sama saja seperti SSH, hanya kita perlu login dulu ke hosting panel kita.
Catatan kondisi:
Saya akan membagikan 2 perintah untuk masing-masing, yaitu untuk output file tanpa tanggal sebagai dasarnya, dan output file dengan tanggal sebagai contoh pengembangannya.
Untuk backup file, bagi saya pribadi lebih suka untuk membuat arsip semua file dalam folder WordPress supaya seandainya ada file-file yang dibutuhkan oleh website tersebut dapat tercakup. Untuk kompresi yang saya gunakan akan menghasilkan file dengan output .tar.gz
Alternatif lainnya adalah hanya meng export konten WordPress yang akan menghasilkan data dengan format .xml namun langkah ini tidak saya gunakan dalam proses backup ini.
Hal lainnya bisa anda kembangkan sendiri dengan mencari referensi khususnya tentang perintah pada SSH (atau lebih tepatnya BASH, sebuah bahasa perintah pada shell).
#backup database wp --path='./public_html' db export namadomainnya.sql #backup database dengan variabel tanggal wp --path='./public_html' db export "namadomainnya.$(date '+%Y-%m-%d').sql"
*Ganti namadomainnya dengan domain website yang ingin anda backup.
#backup file tar czf namadomainnya.tar.gz ~/public_html/ #backup file dengan tanggal tar czf "namadomainnya.$(date '+%Y-%m-%d').tar.gz" public_html/
Dari kedua perintah diatas, kita bisa membuat script shell sederhana agar dapat dijalankan dalam 1 perintah dan mengganti variabel namadomainnya sesuai kebutuhan kita. Langkah-langkahnya adalah sebagai berikut:
nano backup.sh
#!/bin/bash echo -e "Apa nama domainnya yang ingin anda backup?" echo -n "(hanya untuk keperluan penamaan hasil file backup saja, contoh: digitalizer.my.id)? : " read domain tar czf "$domain.$(date '+%Y-%m-%d').tar.gz" public_html/ wp --path='./public_html' db export "$domain.$(date '+%Y-%m-%d').sql" echo -e "$domain telah selesai di backup."
chmod +x backup.sh
./backup.sh Apa nama domainnya yang ingin anda backup? (hanya untuk keperluan penamaan hasil file backup saja, contoh: digitalizer.my.id)? : digitalizer.my.id Success: Exported to 'digitalizer.my.id.2022-03-06.sql'. digitalizer.my.id telah selesai di backup.
drwxr-xr-x 2 asdkjlkas asdkjlkas 4096 Mar 6 23:18 backup -rwxrwxr-x 1 asdkjlkas asdkjlkas 346 Mar 6 23:21 backup.sh -rw-rw-r-- 1 asdkjlkas asdkjlkas 36570924 Mar 6 23:20 digitalizer.my.id.2022-03-06.sql -rw-rw-r-- 1 asdkjlkas asdkjlkas 304862665 Mar 6 23:20 digitalizer.my.id.2022-03-06.tar.gz drwxr-x--- 2 root nogroup 4096 Feb 25 10:23 logs drwxr-xr-x 10 asdkjlkas nogroup 4096 Mar 2 04:06 public_html
Bagaimana jika kita ingin membuat autobackup atau backup yang berjalan secara otomatis?
Tentunya kita tidak bisa menggunakan script backup diatas, karena pada script tersebut kita harus memasukan nama domainnya terlebih dahulu.
Caranya yaitu kita ganti dengan domain yang kita inginkan, dan menghilangkan perintah untuk input domainnya, langkah-langkahnya adalah sebagai berikut:
nano autobackup.sh
#!/bin/bash tar czf "digitalizer.my.id.$(date '+%Y-%m-%d').tar.gz" public_html/ wp --path='./public_html' db export "digitalizer.my.id.$(date '+%Y-%m-%d').sql"
chmod +x autobackup.sh
crontab -e
0 4 * * * ~/autobackup.sh
Dengan begitu, setiap jam 4 pagi maka akan ada proses backup database dan file WordPress anda.
Jika anda kesulitan dalam mengkonversi jadwal kedalam perintah cron, bisa memanfaatkan Crontab Guru untuk menghasilkan perintah cron.
Jadi dengan 2 baris perintah saja, masing-masing dengan WP CLI dan SSH saja anda telah membuat backup data website WordPress anda. Hasilnya bisa anda simpan di local, atau anda pindahkan kemudian ke tempat lain yang lebih aman.
Selain itu, dengan pengembangan script shell anda juga bisa membuat backup dengan satu perintah saja, dan juga bisa membuat backup yang berjalan secara otomatis.
Bagaimana menurut anda langkah-langkah backup dengan WP CLI dan SSH (BASH) ini? Tinggalkan komentar anda dibawah ya... Selamat mencoba, semoga bermanfaat!
- Zulfikar Wijaya -
Baca juga: Restore Backup WordPress dengan WP CLI & SSH
Credit: