Re: ZFS - automatické snapshoty s rotací
Marián Černý
majo-users-l at cerny.sk
Thu Feb 16 10:27:09 CET 2017
> Potřeboval bych přes cron dělat pravidelné "zálohy" s rotací pomocí ZFS snapshotů.
> Pokud někdo něco takového děláte, jaký nástroj na to používáte?
Pouzivam vlastny skript (pozri nizsie), ktory spustam cez cron:
# ZFS Backups
2 1-23 * * * root sh /opt/sbin/zfs-backup.sh hourly
2 0 * * * root sh /opt/sbin/zfs-backup.sh daily
32 0 1 * * root sh /opt/sbin/zfs-backup.sh monthly
Vytvara to hodinove snapshoty 24 hodin spat, denne 7 dni spat a mesacne 6 mesiacov spat.
@monthly-2016-09-01-00:00
@monthly-2016-10-01-00:00
@monthly-2016-11-01-00:00
@monthly-2016-12-01-00:00
@monthly-2017-01-01-00:00
@monthly-2017-02-01-00:00
@daily-2017-02-10-00:00
@daily-2017-02-11-00:00
@daily-2017-02-12-00:00
@daily-2017-02-13-00:00
@daily-2017-02-14-00:00
@daily-2017-02-15-00:00
@hourly-2017-02-15-11:00
@hourly-2017-02-15-12:00
@hourly-2017-02-15-13:00
@hourly-2017-02-15-14:00
@hourly-2017-02-15-15:00
@hourly-2017-02-15-16:00
@hourly-2017-02-15-17:00
@hourly-2017-02-15-18:00
@hourly-2017-02-15-19:00
@hourly-2017-02-15-20:00
@hourly-2017-02-15-21:00
@hourly-2017-02-15-22:00
@hourly-2017-02-15-23:00
@daily-2017-02-16-00:00
@hourly-2017-02-16-01:00
@hourly-2017-02-16-02:00
@hourly-2017-02-16-03:00
@hourly-2017-02-16-04:00
@hourly-2017-02-16-05:00
@hourly-2017-02-16-06:00
@hourly-2017-02-16-07:00
@hourly-2017-02-16-08:00
@hourly-2017-02-16-09:00
@hourly-2017-02-16-10:00
Mam k tomu este periodic cleanup script, ktory maze stare snapshoty, ktore tam zostanu, ked sa ten skript nespusti - napriklad kvoli vypadku serveru.
zfs-backup.sh:
set -e
type=$1
case "$type" in
hourly)
adjust=-24H
format="%F-%H:00"
;;
daily)
adjust=-7d
format="%F-00:00"
;;
monthly)
adjust=-6m
format="%F-00:00"
;;
*)
echo Invalid type $type >&2
exit 1
;;
esac
pools=`zpool list -H -o name`
#########################################
# Delete old (rotating-out) snapshots #
#########################################
old=$type-`date -v$adjust +$format`
for pool in $pools
do
# Maly HACK ako sa vyhnut hlaske, ze snaphost s danym menom neexistuje.
# Vytvorime si snaphost priamo na hlavny dataset poolu, ktory vzapeti
# hned zmazeme.
zfs snapshot $pool@$old
zfs destroy -r $pool@$old
done
#########################################
# Create new snapshot #
#########################################
datasets=`zfs list -d 1 -H -o name $pools | grep /`
new=$type-`date +$format`
for dataset in $datasets
do
zfs snapshot -r $dataset@$new
done
More information about the Users-l
mailing list