This guide requires MySQL or MariaDB installed on unRAID in a docker container and the “User Scripts” addon.
1. Map a backup folder
Edit your MySQL or MariaDB docker conatiner and add a new “Path” variable for bakcups For example, /backup to /mnt/user/db-backups
2. Create a new script
Create a new script in the “User Scripts” plugin, and call it “FileFlows-DB-Backup”
3. Edit the Script
Edit the script by running
nano /boot/config/plugins/user.scripts/scripts/FileFlows-DB-Backup/script
4. Code
Paste the following code replacing your database username and password and your bakcup location
#!/bin/bash
echo starting the backup
container=mariadb
user=root
password=password
dbname=FileFlows
backup=/backups
d=`date +%Y-%m-%d`
echo deleting old backups, older than 14 days
docker exec $container find $backup -type f -mtime +14 -exec rm -r {} +
echo about to backup $dbname
echo
docker exec $container mysqldump -u $user -p$password --databases $dbname --single-transaction --quick --result-file=$backup/$dbname-$d.sql
echo
echo finished backup up to $backup
Note: There is intentionally no space between -p and $password
5. Test the Script
Run the script from the User Scripts and check its output, confirm a new backup was saved to the backup path