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 –

Buat directory untuk menyimpan file WordPress dan Database
mkdir -p /backup/nama-domain-kamu.com

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

Berikut hasil Kompresi

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

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

