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.