Mengapa Kami Menggunakan Dedicated Back Backup Daemon Dibanding Plugin GUI
Hambatan Caching Level GUI
Banyak administrator web pemula menggunakan plugin WordPress seperti UpdraftPlus atau All-in-One WP Migration. Ketika database masih di bawah 100MB, cara ini berjalan mulus.
Namun ketika database bertumbuh menjadi 5GB+, proses pengompresan file zip di dalam process thread Apache/PHP-FPM akan memicu limitasi max_execution_time atau memory_limit server, berujung pada situs web crash (502 Bad Gateway) dan backup file rusak/setengah matang.
Solusi Terbaik: Native Bash Daemon & S3 Storage
Kita memindahkan tugas backup dari runtime web (PHP) langsung ke system kernel Debian menggunakan skrip Bash yang dijadwalkan oleh system daemon (cronjob).
#!/bin/bash
# NAMA: backupsync.sh
# LOG: incremental backup daemon script
# AUTHOR: Bagas Adityo (OPERATOR_001)
BACKUP_DIR="/mnt/backups"
TIMESTAMP=$(date +"%Y-%m-%d_%H%M%S")
DATABASE_NAME="wp_production"
S3_BUCKET="s3://bagas-db-backups"
# Dump database secara efisien memakai mysqldump native
mysqldump --single-transaction --quick -u root $DATABASE_NAME | gzip > "$BACKUP_DIR/db_$TIMESTAMP.sql.gz"
# Kompres tarball file direktori dengan pengecualian cache log
tar -czf "$BACKUP_DIR/files_$TIMESTAMP.tar.gz" --exclude="wp-content/cache" /var/www/wordpress
# Kirim payload aman ke AWS S3
aws s3 cp "$BACKUP_DIR/db_$TIMESTAMP.sql.gz" "$S3_BUCKET"
aws s3 cp "$BACKUP_DIR/files_$TIMESTAMP.tar.gz" "$S3_BUCKET"
# Kirim status dispatch ke Slack
curl -X POST -H 'Content-type: application/json' --data '{"text":"[!] INFRA_ALERT: Backup successfully synchronised to AWS Secure S3 Bucket."}' https://hooks.slack.com/services/T00/B00/X00Mengkonfigurasi Schedulers Daemon
Tambahkan baris scheduling berikut ke system crontab:
$ crontab -eSisipkan baris ini guna memicu eksekusi backup senyap setiap pukul 02:00 pagi tanpa mengganggu traffic pengunjung aktif:
00 02 * * * /bin/bash /opt/backupsync.sh > /dev/null 2>&1