Backup WordPress dan Database
Backup WordPress dan Database

Cara Backup WordPress dan Database di Ubuntu Server

Melakukan Backup WordPress dan Database yang berjalan di server adalah hal yang sangat krusial.

Proses ini berfungsi sebagai garis pertahanan pertama untuk memulihkan data jika terjadi insiden keamanan, seperti WordPress yang menjadi korban hacking, terkena malware, atau bahkan kesalahan manusia dari pemilik WordPress sendiri yang tidak sengaja menghapus file penting.

Dengan memiliki cadangan, data yang hilang dapat dikembalikan.

Persiapan Backup

Sebelum menjalankan perintah, fondasi dari strategi Backup file WordPress dan database yang baik adalah dua hal: mengetahui lokasi data yang akan dicadangkan dan memiliki tujuan penyimpanan backup yang aman.

Pada contoh disini akan melakukan backup file WordPress yang berada di directory /var/www/ dan database menggunakan MariaDB. Untuk lokasi penyimpanan hasil backup, berada di directory /backup ubuntu server.

Remote ssh server ubuntu yang akan di backup,  lalu switch ke user root

sudo su –

remote ssh ubuntu server
Remote SSH Ubuntu Server

Buat directory untuk menyimpan file WordPress dan Database

mkdir -p /backup/nama-domain-kamu.com

Membuat Directory Backup
Membuat Directory Backup

Backup Manual

Backup manual metode paling mendasar untuk melindungi WordPress kamu.

1. Kompresi File WordPress

tar czvf output-nama-domain.com.tar.gz lokasi-file-WordPress

Kompresi File WordPress
Kompresi File WordPress

Berikut hasil Kompresi

Kompresi File WordPress
Hasil Kompresi File WordPress

2. Export Database WordPress

Selanjutnya, kita masuk ke tahap inti dari proses, yaitu melakukan backup database.

Mengapa ini krusial? File WordPress saja tidak cukup, karena seluruh konten, postingan, dan data dinamis WordPress justru tersimpan di dalam database.

Untuk menjalankan backup database MariaDB, perintah yang kita gunakan adalah mysqldump.

mysqldump -u root -p nama-databse-wordpress | gzip > /backup/nama-domain-kamu.com/nama-domain-kamu.com.sql.gz

Export Database WordPress
Export Database WordPress

Backup Menggunakan Bash Script

Untuk mengotomatiskan dan menyederhanakan proses backup, dibuat sebuah bash script yang berisi semua perintah yang diperlukan. Menambahkan nilai “otomatisasi” yang merupakan salah satu tujuan utama penggunaan script.

Membuat file konfigurasi database nama_db.cnf yang berisi kredensial username dan password dalam folder /backup .

nano /backup/nama_db.cnf

Masukkan script dibawah dan kredensial akses database (username dan password).

[mysqldump]
user=username_db
password=password_db

Mengatur permission file nama_db.cnf menjadi 600 (hanya root yang dapat read dan write).

chmod 600 /backup/nama_db.cnf

Membuat file script utama main-script.sh sebagai kerangka proses.

nano /backup/main-script.sh

Masukan bash script dibawah kedalam file main_script.sh .

!/bin/bash
clear
cd /var/www
tar czvf /backup/nama-domain-kamu.com/nama-domain-kamu.com-$(date +%d%m%Y).tar.gz nama-domain-kamu.com
mysqldump –defaults-extra-file=/backup/nama-database-kamu_db.cnf nama-database-kamu_db | gzip > /backup/nama-domain-kamu.com/nama-database-kamu_db-$(date +%d%m%Y).sql.gz
find /backup/nama-domain-kamu.com -type f -mtime +1 -delete

Keterangan :

Backup File Website

cd /var/www
tar czvf /backup/nama-domain-kamu.com/nama-domain-kamu.com-$(date +%d%m%Y).tar.gz nama-domain-kamu.com

Membuat archive file website:

  • tar czvf = Membuat archive terkompresi dengan verbose output
  • Output: /backup/nama-domain-kamu.com/nama-domain-kamu.com-DDMMYYYY.tar.gz
  • Input: Folder nama-domain-kamu.com di direktori /var/www/
  • Timestamp: $(date +%d%m%Y) = format tanggal (contoh: 04112025)

Backup Database

mysqldump –defaults-extra-file=/backup/nama-database-kamu_db.cnf nama-database-kamu_db | gzip > /backup/nama-domain-kamu.com/nama-database-kamu_db-$(date +%d%m%Y).sql.gz

Membuat backup database mariaDB/ MySQL:

  • –defaults-extra-file = Menggunakan file konfigurasi berisi username/password database
  • File konfig: /backup/nama-database-kamu_db.cnf
  • Database: nama-database-kamu_db
  • | gzip = Mengkompresi output langsung tanpa file sementara
  • Output: /backup/nama-domain-kamu.com/nama-database-kamu_db-DDMMYYYY.sql.gz

Manajemen Backup Lama

find /backup/nama-domain-kamu.com -type f -mtime +1 -delete

Menghapus backup lama:

  • Lokasi: /backup/nama-domain-kamu.com
  • -type f = Hanya mencari file (bukan folder)
  • -mtime +1 = File yang modified time lebih dari 1 hari
  • -delete = Menghapus file yang memenuhi kriteria

Mengubah permission main-script.sh menjadi executable dengan perintah:

chmod 700 /backup/main-script.sh

Menjalankan script utama main-script.sh untuk memulai proses backup.

/backup/main-script.sh

Memverifikasi hasil backup dengan menampilkan daftar file di direktori backup beserta detailnya.

ls -lh /backup/nama-domain-kamu.com