Pendahuluan
Melakukan backup secara rutin adalah langkah krusial untuk menjaga keamanan data Anda. Dalam artikel ini, kami akan memandu Anda langkah demi langkah untuk membuat backup otomatis database MySQL tertentu, yaitu audio_db
, dan mengunggahnya ke Wasabi, penyedia layanan penyimpanan yang kompatibel dengan S3. Kami juga akan memastikan bahwa hanya tiga backup terbaru yang disimpan, dengan menggunakan endpoint kustom untuk Wasabi.
Langkah-langkah
1. Instalasi dan Konfigurasi AWS CLI
Untuk memulai, Anda perlu menginstal AWS CLI di server Anda dan mengkonfigurasinya dengan kredensial Wasabi Anda.
- Instal AWS CLI:
sudo apt-get install awscli # Untuk Ubuntu/Debian
sudo yum install awscli # Untuk CentOS/RHEL
- Konfigurasi AWS CLI: Jalankan perintah berikut untuk mengonfigurasi AWS CLI dengan kredensial Wasabi Anda:
aws configure
Masukkan Access Key ID, Secret Access Key, region default (misalnya us-east-1
), dan format output default (misalnya json
).
2. Buat Skrip Backup
Buat skrip bash yang akan melakukan backup database MySQL Anda dan mengunggahnya ke Wasabi.
cd /usr/local/bin
nano backup_audio_db.sh
Buat direktori backup sementara :
sudo mkdir -p /var/backups
sudo chown $(whoami):$(whoami) /var/backups
Buat dan simpan skrip berikut dengan nama backup_audio_db.sh
:
#!/bin/bash
# Variabel
DB_NAME=”audio_db”
DB_USER=”username”
DB_PASS=”password”
S3_BUCKET=”nama-bucket-anda”
S3_DIR=”backup/db”
DATE=$(date +”%Y-%m-%d-%H%M%S”)
BACKUP_NAME=”$DB_NAME-$DATE.sql.gz”
BACKUP_DIR=”/var/backups”
ENDPOINT_URL=”https://s3.ap-southeast-1.wasabisys.com” # Endpoint Wasabi# Membuat direktori backup jika belum ada
mkdir -p $BACKUP_DIR# Backup database tertentu
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/$BACKUP_NAME# Unggah ke Wasabi
aws s3 cp $BACKUP_NAME s3://$S3_BUCKET/$S3_DIR/$BACKUP_NAME –endpoint-url $ENDPOINT_URL# Hapus file backup lokal
rm $BACKUP_NAME# Hapus backup lama dari Wasabi, hanya simpan 3 backup terbaru
aws s3 ls s3://$S3_BUCKET/$S3_DIR/ –endpoint-url $ENDPOINT_URL | grep $DB_NAME | sort | head -n -3 | awk ‘{print $4}’ | while read -r line; do
aws s3 rm s3://$S3_BUCKET/$S3_DIR/$line –endpoint-url $ENDPOINT_URL
doneecho “Backup database $DB_NAME selesai dan diunggah ke Wasabi.”
3. Berikan Izin Eksekusi pada Skrip
chmod +x /usr/local/bin/backup_audio_db.sh
4. Jalankan Skrip Secara Manual
Untuk menguji skrip, jalankan secara manual:
/usr/local/bin/backup_audio_db.sh
5. Tambahkan ke Cron Job
Tambahkan skrip ini ke cron job untuk menjalankan setiap hari pada pukul 23:45:
crontab -e
Tambahkan baris berikut di akhir file crontab:
- Variabel:
DB_NAME
: Nama database yang akan di-backup (audio_db
).DB_USER
danDB_PASS
: Kredensial MySQL Anda.S3_BUCKET
: Nama bucket Wasabi Anda.S3_DIR
: Direktori di dalam bucket Wasabi tempat file backup akan disimpan.DATE
: Tanggal dan waktu saat ini untuk menandai backup.BACKUP_NAME
: Nama file backup yang akan dihasilkan.BACKUP_DIR
: Direktori sementara untuk menyimpan file backup sebelum diunggah ke Wasabi.ENDPOINT_URL
: URL endpoint untuk Wasabi (https://s3.ap-southeast-1.wasabisys.com
).
- Membuat Direktori Backup:
mkdir -p $BACKUP_DIR
: Membuat direktori backup jika belum ada.
- Backup Database Tertentu:
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/$BACKUP_NAME
: Membuat backup dari databaseaudio_db
dan mengompresnya.
- Unggah ke Wasabi:
aws s3 cp $BACKUP_DIR/$BACKUP_NAME s3://$S3_BUCKET/$S3_DIR/$BACKUP_NAME --endpoint-url $ENDPOINT_URL
: Mengunggah file backup ke direktoribackup/db
di bucket Wasabi.
- Hapus File Backup Lokal:
rm $BACKUP_DIR/$BACKUP_NAME
: Menghapus file backup lokal setelah diunggah.
- Hapus Backup Lama dari Wasabi:
aws s3 ls s3://$S3_BUCKET/$S3_DIR/ --endpoint-url $ENDPOINT_URL | grep $DB_NAME | sort | head -n -3 | awk '{print $4}' | while read -r line; do aws s3 rm s3://$S3_BUCKET/$S3_DIR/$line --endpoint-url $ENDPOINT_URL; done
: Memeriksa daftar file backup di Wasabi, mengurutkannya, dan menghapus backup lama sehingga hanya 3 backup terbaru yang disimpan untukaudio_db
.
Kesimpulan
Dengan mengikuti langkah-langkah ini, Anda dapat melakukan backup otomatis untuk database audio_db
setiap hari pada pukul 23:45 dan hanya menyimpan tiga backup terbaru di Wasabi. Skrip ini memastikan bahwa data Anda selalu terlindungi dan mudah diakses saat dibutuhkan. Backup rutin adalah bagian penting dari strategi keamanan data, dan menggunakan layanan penyimpanan awan seperti Wasabi membantu memastikan bahwa data Anda aman dan terlindungi dari kehilangan.
Artikel Lain : Sinkronisasi Otomatis Direktori ke Wasabi Menggunakan AWS CLI
-bash: /usr/local/bin/backup_toko_db.sh: /bin/bash^M: bad interpreter: No such file or directory
Gunakan perintah :
sed -i ‘s/\r//’ /usr/local/bin/backup_toko_db.sh