Script Bash untuk Backup MySQL

Sebagai Administrator, Anda diminta membuat skrip bash untuk backup harian MySQL.

Berikut ini adalah contoh skrip bash untuk melakukan backup database harian dengan retensi 3 hari.

#!/bin/bash

# Konfigurasi
DB_HOST="localhost"  # Ganti dengan alamat host database
DB_USER="username"  # Ganti dengan username database
DB_PASS="password"  # Ganti dengan password database
DB_NAME="nama_database"  # Ganti dengan nama database yang ingin di-backup
BACKUP_DIR="/path/ke/direktori/backup"  # Ganti dengan direktori tujuan backup

# Membuat nama file backup dengan format tanggal
BACKUP_FILE="${BACKUP_DIR}/backup_$(date +%Y%m%d).sql"

# Menghapus backup yang lebih lama dari 3 hari
find ${BACKUP_DIR} -name "backup_*" -type f -mtime +3 -exec rm {} \;

# Membuat backup database
mysqldump -h ${DB_HOST} -u ${DB_USER} -p${DB_PASS} ${DB_NAME} > ${BACKUP_FILE}

# Menampilkan pesan sukses atau gagal
if [ $? -eq 0 ]; then
  echo "Backup database berhasil: ${BACKUP_FILE}"
else
  echo "Backup database gagal"
fi

Anda perlu mengganti beberapa nilai konfigurasi sesuai dengan kebutuhan Anda, seperti DB_HOST, DB_USER, DB_PASS, DB_NAME, dan BACKUP_DIR. Pastikan Anda memberikan izin yang tepat pada direktori backup agar skrip dapat menulis file backup.

Skrip ini akan membuat file backup dengan format “backup_tanggal.sql” di direktori yang ditentukan. Selanjutnya, skrip akan menghapus backup yang lebih lama dari 3 hari menggunakan perintah find dengan opsi -mtime +3.

Untuk menjalankan skrip ini secara otomatis setiap hari, Anda dapat menambahkan entri cron job dengan perintah crontab -e dan menambahkan baris berikut.

0 0 * * * /path/ke/skrip.sh

Baris ini akan menjalankan skrip setiap hari pada pukul 00:00. Pastikan untuk mengganti /path/ke/skrip.sh dengan jalur sesuai dengan lokasi skrip Anda.