Domoticz auto-backup naar FTP – Versie 1.1

Status: Verouderd, versie 1.2 is beschikbaar.

Beschrijving

Script voor het automatisch maken van een backup van Domoticz en het wegschrijven hiervan naar een FTP-locatie.

Persoonlijk heb ik dit script op m’n Raspberry Pi opgeslagen als /scripts/domoticz_backup/backup.sh en staat dit script dagelijks gescheduled via een cronjob rond twaalf uur ’s nachts.

Update

Verbeterde versie van het originele script. Wegschrijven van backup-bestanden op de FTP-locatie gebeurt nu in één commando i.p.v. drie, waardoor er ook maar één keer wordt ingelogd (iedere backup leverde drie inlogacties op in het logboek van m’n NAS).

Code

#!/bin/bash

# LOCAL/FTP/SCP/MAIL PARAMETERS
SERVER=""               # IP-adres:Port van je 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,/tmp/domoticz_scripts_$TIMESTAMP.tar.gz,/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!

5 reacties

  1. hallo Jos,

    zojuist ge”post” dat de backup goed werkt, en dat lijkt ook zo, maar er is één item die niet goed gaat. Dat is de crontab, die file blijft leeg en heeft een lengte 0 (nul).
    Ik heb nog even getest met crontab -l > crontab.txt op de commandline, en dat werkt wel. (home directory)
    De overige twee files zijn wel in orde.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.