Pengantar
Terkadang terdapat suatu kondisi dimana administrator memerlukan backup database masing masing database user secara menyeluruh namun terpisah dari script atau fitur yang sudah disediakan oleh sistem cPanel/WHM.
Prosedur
Berikut contoh bash script sederhana yang dapat melakukan generate backup database masing masing database user secara menyeluruh di dalam server, kecuali database mysql, information_schema dan performance_schema yang tidak diikut sertakan. Untuk dapat menjalankan script berikut, memerlukan akses root.
#####################################################
#!/bin/bash
BACKUPDIR="/backup/databases/$(date +%F)"
if [ ! -e $BACKUPDIR ]; then
mkdir -p $BACKUPDIR
chmod 700 $BACKUPDIR
fi
mysql -Bse 'show databases;'|grep -Ev 'information_schema|mysql|performance_schema'|sort|while read -r DB;do
mysqldump $DB > $BACKUPDIR/$DB.sql
echo "$DB.sql = $(du -sh $BACKUPDIR/$DB.sql)"
done
#####################################################
Pada script di atas, akan menjalankan backup database per .sql database name. Kondisi tersebut lebih aman karena diproses sesuai dengan database name yang ada di alam server, tidak melakukan backup seluruh database dalam satu file .sql, namun masing masing database terbackup ke dalam masing masing file .sql.
Lokasi file backup database .sql akan tersimlan di dalam directory /backup/databases. Jika script dijalankan pada tanggal 5 Agustus 2024 maka lokasi file backup database .sql akan tersimpan di dalam directory /backup/databases/2024-08-05 secara otomatis.