A while back I set up an ownCloud server running on a unRAID 5.x box. Initially a experiment, I've now fully switched to ownCloud on all of my devices and fully dropped Dropbox (pun intended). If Condoleezza Rice being on the board of Dropbox doesn't make you want to drop it like a bad habbit, I don't know what will.
With all of this data now on ownCloud, I need solid backups...
A sloppy solution
My scheme is the following-ish:
- ownCloud data stored on unRAID so it get's the benefit of parity.
- Data is synced every day at 4AM to an area on a local Windows box.
- The backup area on said Windows box is backed up to an external USB drive
- The backup area on said Windows box is also fully synced to Backblaze
Item's #3 and #4 were already the case for other reasons. To achieve #2, I threw together some scripts...
First, the actual rsync script @ /boot/config/custom/ownCloudBackup.sh:
#!/bin/sh # Ensure we have a mount directory mkdir -p /mnt/Nu64_ownCloud_BACKUP # Mount if required if mount | grep /mnt/Nu64_ownCloud_BACKUP > /dev/null; then echo Already mounted else echo Mounting mount -t cifs //Nu64/ownCloud_BACKUP /mnt/Nu64_ownCloud_BACKUP/ -o user=USERNAME,password=PASSWORD fi # Rsync on over rsync --progress -Aax /mnt/disk3/owncloud_data/ /mnt/Nu64_ownCloud_BACKUP/owncloud_data-BACKUP rsync --progress -Aax /mnt/disk1/www/owncloud/ /mnt/Nu64_ownCloud_BACKUP/www_owncloud-BACKUP
I then created a file with a crontab entry @ /boot/config/custom/ownCloudBackupCron:
# Backup ownCloud * 4 * * * /boot/config/custom/ownCloudBackup.sh
Lasty, unRAID likes to replace your crontab at every boot. To remedy this, cat the above script into /var/spool/cron/crontabs/root at every boot by adding a line to /boot/config/go:
cat /boot/config/custom/ownCloudBackupCron >> /var/spool/cron/crontabs/root
That's about it! At some time I may make the whole thing a bit fancier, but this should do for now.