Skip to content

Instantly share code, notes, and snippets.

@kchristensen
Last active August 29, 2015 14:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kchristensen/ab7aa9016e1cbd14e36a to your computer and use it in GitHub Desktop.
Save kchristensen/ab7aa9016e1cbd14e36a to your computer and use it in GitHub Desktop.
FreeNAS Config Backup
#!/bin/bash
POOL="zpool1"
DATASET="backup/nas"
DB=freenas-v1.db
DB_HOME="/data"
BACKUP_HOME="/mnt/$POOL/$DATASET"
VERSIONS=10
exec 2> $BACKUP_HOME/backup.log
set -x
CURRDB_SUM=$(cksum $DB_HOME/$DB)
CURRDB_SUM=${CURRDB_SUM%% *}
BACKUPDB_SUM=$(cksum $BACKUP_HOME/$DB 2> /dev/null)
BACKUPDB_SUM=${BACKUPDB_SUM%% *}
# See if the checksum changed
if [ "$CURRDB_SUM" != "$BACKUPDB_SUM" ];
then
cp -f $DB_HOME/$DB $BACKUP_HOME/$DB
zfs snapshot $POOL/$DATASET@$(date +%y%m%d-%H%M)
zfs list -t snapshot -o name -H -S name -r $POOL/$DATASET | sed -n "$((VERSIONS+1)),\$p" | while read snap
do
zfs destroy $snap
done
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment