A simple bash script to backup MariaDB.
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- #!/bin/bash
-
- export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- BAK_DIR=/var/backups/mysql
- LOG_DIR=/var/log/mysql
-
- echo "Starting Backup" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
- echo "---------" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
-
- xtrabackup --backup --target-dir=$BAK_DIR >> \
- $LOG_DIR/mysql-bak-$(date +%F).log 2>&1 || \
- echo "Backup failed with exit value $?" >> \
- $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
-
- echo "Backup Finished" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
- echo "---------" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
- echo "" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
-
- echo "Starting Prepare #1" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
- echo "---------" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
-
- xtrabackup --prepare --target-dir=$BAK_DIR >> \
- $LOG_DIR/mysql-bak-$(date +%F).log 2>&1 || \
- echo "Prepare #1 failed with exit value $?" >> \
- $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
-
- echo "Prepare #1 Finished" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
- echo "---------" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
- echo "" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
-
- echo "Starting Prepare #2" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
- echo "---------" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
-
- xtrabackup --prepare --target-dir=$BAK_DIR >> \
- $LOG_DIR/mysql-bak-$(date +%F).log 2>&1 || \
- echo "Prepare #1 failed with exit value $?" >> \
- $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
-
- echo "Prepare #2 Finished" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
- echo "---------" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
- echo "" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
-
- # Delete logs older than 30 days
- find $LOG_DIR -name "mysql-bak-*" -mtime +30 -delete
|