Here’s a step-by-step guide to schedule a backup script for MariaDB on Ubuntu 24.04 LTS using cron.
1. Install Required Tools
Ensure mariadb-client and cron are installed:
sudo apt update
sudo apt install mariadb-client cron -y
2. Create a Backup Directory
Create a directory to store backups:
sudo mkdir -p /var/backups/mariadb
sudo chown -R mysql:mysql /var/backups/mariadb
sudo chmod 555 -R /var/backups/mariadb
3. Create the Backup Script
Create a script to perform the backup:
sudo nano /usr/local/bin/mariadb_backup.sh
Add the following content:
#!/bin/bash
# Variables
BACKUP_DIR="/var/backups/mariadb"
DATE=$(date +'%Y-%m-%d_%H-%M-%S')
BACKUP_FILE="$BACKUP_DIR/mariadb21247_backup_$DATE.sql"
USER="root"
PASSWORD="lImfwsER@3034!"
# Backup command
mysqldump -u $USER -p$PASSWORD --all-databases > $BACKUP_FILE
# Compress the backup
gzip $BACKUP_FILE
# Remove backups older than 7 days
find $BACKUP_DIR -type f -name "*.sql.gz" -mtime +7 -exec rm {} \;
Replace your_password with your MariaDB root password.
Adjust -mtime +7 if you want to keep backups for more or fewer days.
Save and close the file.
4. Make the Script Executable
sudo chmod +x /usr/local/bin/mariadb_backup.sh
5. Schedule the Backup Script with Cron
Open the cron editor:
sudo crontab -e
Add the following line to schedule a daily backup at 6:00 AM:
0 6 * * * /usr/local/bin/mariadb_backup.sh >> /var/log/mariadb_backup.log 2>&1
0 6 * * *: Run daily at 6:00 AM.
>> /var/log/mariadb_backup.log 2>&1: Log output and errors.
Save and close the file.
6. Verify Cron Job
Check if the cron job is scheduled:
sudo crontab -l
Ensure your script is listed.
7. Test the Backup Script Manually
Run the script manually to verify it works:
sudo /usr/local/bin/mariadb_backup.sh
Check the backup directory:
ls -l /var/backups/mariadb
8. Verify Logs
Check the log file for any errors:
sudo cat /var/log/mariadb_backup.log
Your MariaDB backup script is now scheduled and will run daily at 6:00 AM.