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!
hallo Jos,
ik heb vandaag jouw nieuwe versie toegepast en het werkt uitstekend.
Dank je.
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.
Hallo Carel, moet ik even induiken, dankjewel voor het melden!
Heb je toevallig iets gedaan met verschillende users? Standaard zou namelijk de crontab gebruik moeten maken van de user waarop je deze ook hebt ingesteld. En dus zou die ook netjes de crontab van die user moeten uitdraaien en backuppen. Ik heb voor mijzelf in ieder geval niets speciaals ingesteld staan.
hallo Jos, sorry voor de late reactie. was nogal bezig.
Ik heb alleen de standaard user, pi, in gebruik.