Cara Backup Semua Database SQL Pake Bash/Shell Script

Di bawah ini saya akan bagikan sebuah bash/shell script sederhana yg memiliki kegunaan melakukan backup database sql di server secara menyeluruh. Jadi jika server anda berisi 100 website dengan 100 database maka masing-masing database yg ada dalam server tsb akan terbackup semua.

Menurut saya ini memudahkan dalam urusan backup karena bisa set and forget sehingga tidak perlu melakukan proses backup secara manual satu persatu tiap hari.

Contoh scriptnya adalah sebagai berikut:

#!/bin/bash

# dump database sql dan mengkompresinya. Database sistem tidak disertakan
databases=$(mariadb -e 'SHOW DATABASES' -s --skip-column-names -u root -p'passw0rd1')

for db in $databases; do
  if [[ $db =~ ^(information_schema|admin_default|performance_schema|mysql|sys|phpmyadmin)$ ]]; then
    continue
  fi

  echo "Dumping database $db..."
  mariadb-dump --add-drop-table -u root -p'passw0rd1' --databases "$db" | gzip -c | \
    ssh -p23 u397525@u397525.your-storagebox.de "cat > /home/sql/${db}-$(date +%Y-%m-%d).sql.gz"

  if [[ $? -ne 0 ]]; then
    echo "Failed to dump database $db"
    exit 1
  fi

  echo "Database $db dumped successfully"
done

Script di atas akan melakukan dump tiap database dan mengkompresinya dalam format .gz sambil terkirim ke remote server (server backup). Pada contoh di sini remote servernya beralamatkan di u397525.your-storagebox.de

File hasil backup akan memiliki tanggal pada tiap nama filenya sehingga mudah jika ada suatu keperluan.

Agar script ini dapat berjalan full automatic maka perlu diset dahulu koneksi ke server backup secara password-less ssh. Setelah berhasil maka tinggal dijadwalkan saja per hari autorun melalui /etc/crontab.

 

Cari VPS terbaik untuk project Anda?? Klik di sini!

LEAVE A REPLY

Please enter your comment!
Please enter your name here