Banyak sysadmin yang baru sadar backup-nya rusak saat bencana server crash terjadi. Selain itu, menyimpan file backup database mentah tanpa enkripsi adalah pelanggaran keamanan fatal jika file tersebut tidak sengaja terekspos ke publik.
Script Bash Produksi: Backup, Encrypt, Notify
#!/usr/bin/env bash
set -eo pipefail
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/var/backups/mysql"
DB_NAME="ahmadfauzi.id"
BACKUP_FILE="${BACKUP_DIR}/${DB_NAME}_${DATE}.sql.gz"
GPG_FILE="${BACKUP_FILE}.gpg"
BOT_TOKEN="YOUR_TELEGRAM_BOT_TOKEN"
CHAT_ID="YOUR_CHAT_ID"
# 1. Dump & Kompres
mysqldump --single-transaction -u root -p'Tulalit13!!' ${DB_NAME} | gzip > ${BACKUP_FILE}
# 2. Enkripsi Asimetris GPG
gpg --yes --batch --encrypt --recipient "[email protected]" -o ${GPG_FILE} ${BACKUP_FILE}
rm -f ${BACKUP_FILE}
# 3. Notifikasi Berhasil ke Telegram
SIZE=$(du -h ${GPG_FILE} | cut -f1)
curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
-d "chat_id=${CHAT_ID}&text=✅ Backup Sukses: ${DB_NAME} (${SIZE}) pada ${DATE}"