Backup Otomatis Database MySQL atau MariaDB

Sebagai sistem administrator, kepentingan membackup database aplikasi berbasis web secara otomatis apalagi dengan hosting di server dedicated membuat saya harus memutar otak. Backup otomatis database MySQL atau MariaDB dengan webmin yang biasanya saya pakai tidak bisa berjalan dengan baik. Akhirnya saya mencari dan ketemu script untuk menjalankan backup secara otomatis tiap jam 1 dini hari. Script backup otomatis database mysql atau mariadb ini membuat folder backup tiap hari dan hanya menyimpan file 14 hari terakhir. bisa diubah sesuai dengan kebutuhan.
Copy script berikut:
#!/bin/bash # Basic configuration: datestamp e.g. YYYYMMDD DATE=$(date +"%Y%m%d") # Location of your backups (create the directory first!) BACKUP_DIR="/backup/mysql" # MySQL login details MYSQL_USER="root" MYSQL_PASSWORD="YOURSECUREPASSWORD" # MySQL executable locations (no need to change this) MYSQL=/usr/bin/mysql MYSQLDUMP=/usr/bin/mysqldump # MySQL databases you wish to skip SKIPDATABASES="Database|information_schema|performance_schema|mysql" # Number of days to keep the directories (older than X days will be removed) RETENTION=14 # ---- DO NOT CHANGE BELOW THIS LINE ------------------------------------------ # # Create a new directory into backup directory location for this date mkdir -p $BACKUP_DIR/$DATE # Retrieve a list of all databases databases=`$MYSQL -u$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "($SKIPDATABASES)"` # Dumb the databases in seperate names and gzip the .sql file for db in $databases; do echo $db $MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --skip-lock-tables --events --databases $db | gzip > "$BACKUP_DIR/$DATE/$db.sql.gz" done # Remove files older than X days find $BACKUP_DIR/* -mtime +$RETENTION -delete
simpan dengan nama histla_mysqlbackup.sh pada folder /usr/local/sbin/.
Cek juga bahwa folder /backup/mysql sudah ada, atau jika ingin menyimpan di folder lain bisa diubah.
Kemudian ubah permissionnya menjadi 755
chmod 755 histla_mysqlbackup.sh
Buat sebuah cron job setiap jam 1 dini hari menjalankan backup
nano /etc/crontab 0 1 * * * root /usr/local/sbin/histla_mysqlbackup.sh
Selanjutnya tinggal restart service cron jobnya
service cron restart
Demikian cara backup otomatis database mysql atau mariadb dengan mudah dan cepat.
Tinggalkan Balasan