User Tools

Site Tools


kodi:kodi-dbbackup

This is an old revision of the document!


Kodi DB Backup

The XBMC Backup addon does not back up the mysql database, so this script should be used:

dbbackup.sh
#!/bin/bash
KODIUSER="kodi"
KODIPASS="kodi"
BACKUPDIR="/home/kodi/.kodi/userdata/Database/dbbackup"
BACKUPKEEPDAYS=7
DATE=`/bin/date +%Y%m%d-%H%M`

echo "Beginning Kodi database backup."
echo "Creating backup directory."
mkdir -p $BACKUPDIR

# Get music database number
MUSIC_DB=$(mysql -u $KODIUSER -p$KODIPASS -e "Show databases;" | grep "MyMusic")
MUSIC_DB=${MUSIC_DB:7}
echo "Exporting database 'MyMusic"$MUSIC_DB"'."
mysqldump -u $KODIUSER -a -c -h localhost --password="$KODIPASS" MyMusic$MUSIC_DB --databases | bzip2 -z9 > $BACKUPDIR/Music.$MUSIC_DB.$DATE.sql.bz2
echo "Music database exported.";

# Get video database number
VIDEO_DB=$(mysql -u $KODIUSER -p$KODIPASS -e "Show databases;" | grep "MyVideos")
VIDEO_DB=${VIDEO_DB:8}
echo "Exporting database 'MyVideos"$VIDEO_DB"'"
mysqldump -u $KODIUSER -a -c -h localhost --password="$KODIPASS" --databases MyVideos$VIDEO_DB | bzip2 -z9 > $BACKUPDIR/Videos.$VIDEO_DB.$DATE.sql.bz2
echo "Video database exported."
echo "Kodi backup finished."

# Cleanup
echo "Deleting backups older than $BACKUPKEEPDAYS days"
find $BACKUPDIR/* -mtime +$BACKUPKEEPDAYS -exec rm {} \;
echo "Done"

Make script executable:

chmod 755 /home/kodi/dbbackup.sh

Either add it to crontab to execute it at a particular time like 1am each day:

crontab -e

add add

0 1 * * * /home/kodi/dbbackup.sh

or add it to daily crontab as root:

echo "#!/bin/sh" > /etc/cron.daily/kodi-db-backup
echo "/home/kodi/dbbackup.sh" >> /etc/cron.daily/kodi-db-backup
chmod 755 /etc/cron.daily/kodi-db-backup
kodi/kodi-dbbackup.1597532117.txt.gz · Last modified: 2023/05/29 11:53 (external edit)