Automatische back-up Domoticz database instellen
Het belang van een back-up
Het maken van een back-up wordt nogal eens onderschat. De waarde van een back-up wordt pas gewaardeerd wanneer het leed al is geschied. Nu gebruik ik Domoticz als hobby en het interessant is om data bij te houden, op afstand het een en ander te bedienen, etc.
Voor het back-uppen van data maak ik gebruik van de 3-2-1 regel:
- 3: Zorg voor minimaal 3 kopieën van je data.
- 2: Bewaar de kopieën op minimaal twee verschillende media.
- 1: Bewaar minimaal één kopie buiten je organisatie.
Mocht de data van Domoticz om wat voor reden dan ook verloren gaan is er (voor mij) geen man overboord en begin ik weer opnieuw. Maar voorkomen is beter dan genezen, dus zorg ik ervoor dat de database van Domoticz automatisch wordt opgeslagen in de cloud. Hiervoor maak ik gebruik van Duplicati.
Met Duplicati kun je back-ups maken naar verschillende Cloud platformen zoals Backblaze B2, Tardigrade, Microsoft OneDrive, Amazon S3, Google Drive, box.com, Mega, hubiC, etc. Duplicati is open source software en gratis!
Stap 1: Installeer Mono Framework
Installeer het mono framework om gebruik te maken van Duplicati.
sudo apt install mono-complete ca-certificates-mono -y
Het gehele framework wordt hiermee geïnstalleerd. Met ca-certificates-mono -y
worden SSL-certificaten geïnstalleerd om HTTPS-verbindingen te krijgen. Mocht je problemen ondervinden met het maken van HTTPS-verbindingen, is het raadzaam om dit mee te installeren.
Stap 2: Synchroniseer de certificaten
sudo cert-sync /etc/ssl/certs/ca-certificates.crt
Stap 3: Installeer Duplicati
wget https://updates.duplicati.com/beta/duplicati_2.0.6.1-1_all.deb sudo apt-get install ./duplicati_2.0.6.1-1_all.deb -y
Stap 4: Installeer ontbrekende programmabestanden
sudo apt -f install -y
Stap 5: Maak en pas het service bestand aan
sudo nano /etc/systemd/system/duplicati.service
Het servicebestand dient er als volgt uit te zien:
[Unit]
Description=Duplicati web-server
After=network.target
[Service]
Nice=19
IOSchedulingClass=idle
EnvironmentFile=-/etc/default/duplicati
ExecStart=/usr/bin/duplicati-server $DAEMON_OPTS
Restart=always
[Install]
WantedBy=multi-user.target
Kopieer en plak bovenstaande code in het configuratiebestand en sla het op.
Stap 6: Configureer het initscript
sudo nano /etc/default/duplicati
# Defaults for duplicati initscript
# sourced by /etc/init.d/duplicati
# installed at /etc/default/duplicati by the maintainer scripts
#
# This is a POSIX shell fragment
#
# Additional options that are passed to the Daemon.
DAEMON_OPTS="--webservice-interface=any --webservice-port=8200 --portable-mode"
Stap 7: Start Duplicati service
Om de service te starten maken we gebruik van de volgende commando’s.
sudo systemctl enable duplicati.service
sudo systemctl daemon-reload
sudo systemctl start duplicati.service
sudo systemctl status duplicati.service
Stap 8: Open de Duplicati web-interface
http://<ip-adres>:8200
Na het openen van de Duplicati web-interface zie je de onderstaande melding. Kies voor “No, my machine has only a single account”.
Stap 9: Back-up toevoegen
Klik op de knop “Back-up toevoegen” in het menu en selecteer “Een nieuwe back-up instellen”.
Stap 10: Algemene back-up instellingen
Geef de back-up een duidelijke naam, omschrijving en eventueel wachtwoord. Zorg ervoor dat je het wachtwoord op een veilige plek bewaard mocht je ooit een back-up terug moet plaatsen. Je kunt er ook voor kiezen om geen wachtwoord in te vullen.
Stap 11: Selecteer doel locatie back-up
- Selecteer het opslagtype waar je de back-up wilt opslaan.
- Geef het pad op de server aan.
- Voer eventueel gebruikersnaam en/of wachtwoord in.
Stap 12: Selecteer bron locatie back-up
Selecteer de map /home/pi/domoticz/
als bron. Alles in de map domoticz/ zal worden geback-upt.
Stap 13: Plan de automatische back-up in
Geef je aan op welk moment de back-up moet worden uitgevoerd. Ik maak altijd twee keer per dag een back-up. Eenmaal overdag en eenmaal in de nacht.
Stap 14: Back-up opties
Binnen de opties kun je de bestandsgrootte aangeven van de volumes. Kies je voor 50 MB en is je back-up 144 MB, dan wordt de back-up opgesplitst in twee volumes van 50 MB en één volume van 44 MB.
Kies bij “Back-up retentie” een optie die het beste bij je past. Houdt hierbij ook rekening met de beschikbare ruimte van de doel locatie.
Stap 15: Aanvullende opties
Het is mogelijk om via extra instellingen e-mails te sturen indien een back-up (niet goed) is uitgevoerd. Op https://forum.duplicati.com/t/how-to-configure-automatic-email-notifications-via-gmail-for-every-backup-job/869 wordt stap voor stap uitgelegd hoe je dit kunt doen.
Dit delen:
- Klik om te delen met Twitter (Wordt in een nieuw venster geopend)
- Klik om te delen op Facebook (Wordt in een nieuw venster geopend)
- Zoeken
- Klik om dit te e-mailen naar een vriend (Wordt in een nieuw venster geopend)
- Klik om op LinkedIn te delen (Wordt in een nieuw venster geopend)
- Gebruiker (Wordt in een nieuw venster geopend)
- Front-end SEO-inspecteur (Wordt in een nieuw venster geopend)
- Statistieken (Wordt in een nieuw venster geopend)
- Meldingen (Wordt in een nieuw venster geopend)
Ik doe het zo:
Maak een scriptfile: backups.sh bijvoorbeeld
#!/bin/bash
# LOCAL/FTP/SCP/MAIL PARAMETERS
SERVER=”xxx.xxx.xx.xx” # IP van je hosting account waar je naartoe ftpt.
USERNAME=”jeusername” # FTP username
PASSWORD=”passwordhier” # FTP password
DESTDIR=”/opt/backup” # voor tijdelijke storage
DOMO_IP=”xxx.xxx.xx.x” # Domoticz IP
DOMO_PORT=”8080″ # Domoticz port
### Einde van configureerbare items
TIMESTAMP=
/bin/date +%Y%m%d%H%M%S
BACKUPFILE=”domoticz_$TIMESTAMP.db” # backups will be named “domoticz_YYYYMMDDHHMMSS.db.gz”
BACKUPFILEGZ=”$BACKUPFILE”.gz
### Maak backup, ZIP it en start Domoticz opnieuw
/usr/bin/curl -s http://$DOMO_IP:$DOMO_PORT/backupdatabase.php > /tmp/$BACKUPFILE
gzip -9 /tmp/$BACKUPFILE
### Zend naar je hostingomgeving via FTP
curl -s –disable-epsv -v -T”/tmp/$BACKUPFILEGZ” -u”$USERNAME:$PASSWORD” “ftp://$SERVER/”
### Remove temp backup file
/bin/rm /tmp/$BACKUPFILEGZ
### Klaar!
bewaren
Maak file executable:
chmod +x backups.sh
Test even of het werkt
./backups.sh
Maak een crontab aan:
.crontab -e
4 5 * * * /home/domoticz/backups.sh
Nu wordt er dagelijks een backup van je database bewaard in je hostingomgeving.
Hoi MrMarcie,
Er zijn meerdere wegen naar Rome (gelukkig). En alles heeft zijn voor- en nadelen. In jouw geval zou ik er wel voor zorgen dat de map waarin de data wordt opgeslagen niet benaderbaar is voor andere mensen. De map dient dus te worden beveiligd met een login.
Dank voor het delen van je script.