Hello everyone!
I have a small OrangePi running some small services on it (some with Docker and some without Docker).
And I’d love to know how do you backup your single-board computers.
Do you just rsync the system to a storage server ? Do you plug in a USB drive and rsync on it ? Do you save only the important data or the whole system ?
For now my SBC is not backed-up and I’d like to get a good backup solution up and running quickly! (I don’t trust SD cards to last long…)
I have access to USB drives and disks and also another big server with 20TB of storage which I can make the backup to if needed!
Thanks for your help !
I wrote a bash script a while back that uses sshfs to mount an ssh server to the filesystem, then uses dd to write /dev/mmcblk0 to it as hostname-date.img and finally unmount the ssh server. Cron job runs that daily.
I run that on each of my rpis. (just one rn, but theres been as many as 4 going).
Any time I have an issue, be that my fault or not, I can just pull the sd card and write the last .img to it directly.
There’s some extra stuff in there too: it checks for the dependancy sshfs and installs it if missing (for deploying to a new system without reconfiguring), cleans up backups older than x days, logging, and the ability to write the log file as a test instead of the whole filesystem.
Sorry, but do you have a setup where you don’t need to worry about the atomicity of that operation? It sounds simple and effective, so I’d like to do it, but I’m concerned I may get something halfway through a write.
I suppose the odds are you’d have at worst a bad log file whereas config files and binaries are used read-only the majority of the time.
I’ve run it on every pi I’ve used for several years now, though they are typically pretty quiet systems. Usually something like pihole or a reverse proxy. Not much writing going on. I’ve restored about a dozen of those images and never had an issue.
I also tend to keep 3-6 backups at a time. If the most recent is messed up for some reason, there’s others to try. (though I’ve never actually had to try more than one)