I am using OpenHab more and more and not having a backup was starting to worry me. There are better solutions, but this works for me. I have a 1TB usb PCIe HDD which the OpenHabian is now running as the house nas, and this solution makes a backup each night and copies the newest file to the NAS with a full backup each Sunday.
It has to be run as root cron:
sudo crontab -e -u root
Then this is the cron for root:
10 2 * * * /home/openhabian/bin/backup-openhabian.sh
And this is the script:
#!/bin/bash
##############################
# MUST be run by root cron!!
##############################
if [[ $(date +%u) -gt 6 ]]; then
openhab-cli backup --full
else
openhab-cli backup
fi
# Copy to the nas
echo Copying the newset file to the NAS folder...
file=$( ls -t /var/lib/openhab/backups/* | head -1 )
cp $file /mnt/nas/backup/openhabian/
# delete files older than 7 days
echo Deleting anything older than 7 days...
find /var/lib/openhab/backups/* -mtime +7 -exec rm {} \;
echo Done!
Restoring
https://community.openhab.org/t/solved-backup/57666 is for OH2, but I guess it will work the same. I really need to practise that with a blank SD card.
sudo systemclt stop openhab
openhab-cli restore /var/lib/openhab/backups
sudo systemclt start openhab