Status: Verouderd, versie 1.1 is beschikbaar.
Beschrijving
OK, als je inmiddels genoeg in huis gekoppeld hebt aan Domoticz, dan wil je op een gegeven moment wel regelmatig een backup maken om er zeker van te zijn dat je zaken op een gegegeven moment nog een terug kan zetten.
Aangezien ik ook een Synology NAS heb draaien, wilde ik de backups hierop laten landen (en dan mee laten nemen met de backups die op een externe locatie worden gemaakt).
Al doende (en met het nodige Google-werk uiteraard) kwam ik uit op dit script waarin zowel de bestanden als de database worden meegenomen (origineel komt van HIER);
#!/bin/bash
# LOCAL/FTP/SCP/MAIL PARAMETERS
SERVER="" # IP-adres van je NAS / FTP server
USERNAME="" # Gebruikersnaam voor FTP
PASSWORD="" # Wachtwoord voor FTP
DESTDIRNAS="" # Locatie op je FTP voor de Backup
DOMO_IP="" # IP adres van je Domoticz server
DOMO_PORT="" # Poort van je Domoticz server
#### END OF USER CONFIGURABLE PARAMETERS
TIMESTAMP=`/bin/date +%Y%m%d%H%M%S`
BACKUPFILE="domoticz_$TIMESTAMP.db" # backups will be named "domoticz_YYYYMMDDHHMMSS.db.gz"
BACKUPFILEGZ="$BACKUPFILE".gz
#### Create backup and ZIP it
/usr/bin/curl -s http://$DOMO_IP:$DOMO_PORT/backupdatabase.php > /tmp/$BACKUPFILE
gzip -9 /tmp/$BACKUPFILE
tar -zcvf /tmp/domoticz_scripts_$TIMESTAMP.tar.gz /home/pi/domoticz/scripts/
tar -zcvf /tmp/telegram_scripts_$TIMESTAMP.tar.gz /home/pi/tg/scripts/
#### Send to Network disk through FTP
curl -s --disable-epsv -v -T"/tmp/$BACKUPFILEGZ" -u"$USERNAME:$PASSWORD" "ftp://$SERVER/$DESTDIRNAS"
curl -s --disable-epsv -v -T"/tmp/domoticz_scripts_$TIMESTAMP.tar.gz" -u"$USERNAME:$PASSWORD" "ftp://$SERVER/$DESTDIRNAS"
curl -s --disable-epsv -v -T"/tmp/telegram_scripts_$TIMESTAMP.tar.gz" -u"$USERNAME:$PASSWORD" "ftp://$SERVER/$DESTDIRNAS"
### Remove temp backup file
/bin/rm /tmp/$BACKUPFILEGZ
/bin/rm /tmp/domoticz_scripts_$TIMESTAMP.tar.gz
/bin/rm /tmp/telegram_scripts_$TIMESTAMP.tar.gz
### Done!
Bij mijzelf heb ik dit script opgeslagen op de Raspberry PI waarop Domoticz draait onder/scripts/domoticz_backup/backup.sh (mag natuurlijk iedere locatie zijn) en vervolgens met een cronjob gescheduled.
Om er zeker van te zijn dat de backupbestanden worden meegenomen met de eerst volgende externe backup van de NAS zelf, staat dit script een kwartiertje eerder gepland dan de NAS backup.