≡ Menu

Bagaimana cara backup database mysql dengan bash script

MySQL

Berikut adalah contoh bash script untuk melakukan backup database MySQL:

#!/bin/bash

# Konfigurasi database
DB_USER="nama_user"
DB_PASS="password"
DB_NAME="nama_database"

# Konfigurasi direktori backup
BACKUP_DIR="/path/ke/direktori/backup"

# Nama file backup
FILE_NAME="backup-$(date +'%Y%m%d%H%M%S').sql"

# Path lengkap file backup
BACKUP_FILE="$BACKUP_DIR/$FILE_NAME"

# Membuat direktori backup jika belum ada
if [ ! -d "$BACKUP_DIR" ]; then
  mkdir -p $BACKUP_DIR
fi

# Melakukan backup database
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_FILE

# Mengonfirmasi bahwa backup berhasil
if [ $? -eq 0 ]; then
  echo "Backup berhasil disimpan di $BACKUP_FILE"
else
  echo "Backup gagal!"
fi

Untuk menggunakan script ini, pastikan untuk mengganti nilai variabel DB_USER, DB_PASS, DB_NAME, dan BACKUP_DIR sesuai dengan konfigurasi database dan direktori backup Anda. Kemudian, jalankan script tersebut di terminal dengan perintah bash nama_file.sh.

Script ini akan membuat file backup dengan nama backup-tanggal-waktu.sql di direktori backup yang telah dikonfigurasi, dan mengonfirmasi apakah backup berhasil atau gagal. Anda dapat menjadwalkan script ini untuk berjalan secara otomatis dengan cron job untuk melakukan backup database secara teratur.

Untuk menjalankan script tersebut misalnya setiap pukul 1 malam, Anda dapat menggunakan cron job. Berikut adalah langkah-langkahnya:

  1. Buka terminal dan jalankan perintah crontab -e untuk mengedit crontab.
  2. Tambahkan baris berikut di bagian paling bawah crontab:
0 1 * * * /bin/bash /path/ke/file/nama_file.sh
  1. Penjelasan:
  2. Simpan perubahan dan keluar dari editor crontab.
  3. Sekarang, script akan dieksekusi setiap pukul 1 malam. Jika backup berhasil, Anda akan menerima email notifikasi dari cron daemon. Pastikan konfigurasi email sudah diatur dengan benar pada sistem Anda.

Harap dicatat bahwa waktu yang digunakan oleh cron job adalah waktu server, bukan waktu lokal Anda. Pastikan server Anda memiliki waktu yang benar dan sesuaikan zona waktu jika diperlukan.

{ 0 comments… add one }

Leave a Comment