Halo, kemarin saya sudah posting mengenai Script Backup Folder, nah sekarang saya mau berbagi untuk script backup databasenya. Kurang lebih mekanismenya sama dengan backup folder, namun pastikan saja service mysql dalam keadaan running untuk menjalankan perintah mysqldump.
Seperti backup folder, script ini hanya berjalan jika kita memiliki akses root terhadap server yang akan dibackup ya. Silakan copy paste script berikut pada file db-backup.sh :
#!/bin/sh # Database yang ingin kita backup # Pisahkan dengan spasi untuk tiap database databases="mydb1 mydb2" # Waktu saat ini date=$(date +"%Y-%m-%d") # User dan password dari database # Gunakan root supaya lebih enak user=username pass=password # Tempat menyimpan database bPath="/var/backups/databases" bServer=192.168.100.82 bPort=22 # Buat folder bPath diatas jika belum ada if [ ! -d $bPath ]; then mkdir -p $bPath fi # Hapus file backup di bPath jika umurnya melebihi 3 hari find $bPath/*.sql.gz -mtime +3 -exec rm {} \; # Mulai membackup database for db in $databases; do # Nama dari file backupnya file=$db-$date.sql.gz # Membackup database dengan mysqldump echo "Starting to dump the $db database as $file" mysqldump --user=$user --password=$pass $db | gzip -9 > $bPath/$file done # Upload file ke Backup Server menggunakan rsync echo "Starting to upload to Backup server" rsync -avhHP --progress --delete-after -r -e "ssh -p $bPort" $bPath/ root@$bServer:$bPath echo "Backup selesai" # Clear cache. Hanya untuk KVM, Xen # ataupun dedicated server free -m && sync && echo 3 > /proc/sys/vm/drop_caches && echo "" && free -m
Catatan:
- Pada bagian databases, silakan sesuaikan dengan database yang akan kita backup. Biasanya saya hanya backup database yang dianggap cukup penting dan critical jika datanya hilang
- Masukan juga username dan password, disarankan tidak menggunakan root
- Lokasi server backup juga ditentukan alamat IP-nya
Jika sudah, jangan lupa untuk chmod file tersebut dengan perintah :
chmod +x db-backup.sh
Jalankan perintah berikut untuk menjalankan backup:
bash db-backup.sh
Jika sudah menjalankan perintah diatas, maka akan langsung melakukan backup dan lamanya proses tergantung dengan kapasitas data dari database yang akan dibackup.
Seperti dengan backup folder, script backup database ini bisa diintegrasikan untuk otomatisasi seperti pada Otomatisasi Backup Folder loh..
Semoga berhasil menerapkan, See you~~