====== Kodi DB Backup ======
The XBMC Backup addon does not back up the mysql database, so this script should be used:
#!/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;" 2>/dev/null | grep "MyMusic")
for DB in $MUSIC_DB
do
#DBSHORT=${DB:7}
echo "Exporting database '"$DB"'."
mysqldump -u $KODIUSER -a -c -h localhost --password="$KODIPASS" $DB --databases 2>/dev/null | bzip2 -z9 > "$BACKUPDIR/Music."$DB"."$DATE".sql.bz2"
echo "Music database exported.";
done
# Get video database number
VIDEO_DB=$(mysql -u $KODIUSER -p$KODIPASS -e "Show databases;" 2>/dev/null | grep "MyVideos")
#VIDEO_DB=${VIDEO_DB:8}
for DB in $VIDEO_DB
do
echo "Exporting database '"$DB"'"
mysqldump -u $KODIUSER -a -c -h localhost --password="$KODIPASS" --databases $DB 2>/dev/null | bzip2 -z9 > "$BACKUPDIR/Videos."$DB"."$DATE".sql.bz2"
echo "Video database exported."
done
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