Compare commits

..

No commits in common. "3b1ef1eb411f4aebd366935cd132faccc5469123" and "8ce3217b16d6ee0b3be879301a701758cb3578a9" have entirely different histories.

4 changed files with 8 additions and 18 deletions

View file

@ -16,14 +16,7 @@ defaults = {
'/usr/bin/rsync', '/usr/bin/rsync',
'/sbin/zfs', '/sbin/zfs',
}, },
}, }
'zfs': {
'datasets': {
'tank': {
'recordsize': "1048576",
},
},
},
} }
@ -32,7 +25,7 @@ defaults = {
) )
def zfs(metadata): def zfs(metadata):
datasets = {} datasets = {}
for other_node in repo.nodes: for other_node in repo.nodes:
if ( if (
other_node.has_bundle('backup') and other_node.has_bundle('backup') and
@ -49,7 +42,7 @@ def zfs(metadata):
'com.sun:auto-snapshot': 'false', 'com.sun:auto-snapshot': 'false',
'backup': False, 'backup': False,
} }
# for rsync backups # for rsync backups
datasets[f'{base_dataset}/fs'] = { datasets[f'{base_dataset}/fs'] = {
'mountpoint': f"/mnt/backups/{id}", 'mountpoint': f"/mnt/backups/{id}",
@ -58,10 +51,10 @@ def zfs(metadata):
'com.sun:auto-snapshot': 'true', 'com.sun:auto-snapshot': 'true',
'backup': False, 'backup': False,
} }
# for zfs send/recv # for zfs send/recv
if other_node.has_bundle('zfs'): if other_node.has_bundle('zfs'):
# base datasets for each tank # base datasets for each tank
for pool in other_node.metadata.get('zfs/pools'): for pool in other_node.metadata.get('zfs/pools'):
datasets[f'{base_dataset}/{pool}'] = { datasets[f'{base_dataset}/{pool}'] = {
@ -71,7 +64,7 @@ def zfs(metadata):
'com.sun:auto-snapshot': 'false', 'com.sun:auto-snapshot': 'false',
'backup': False, 'backup': False,
} }
# actual datasets # actual datasets
for path in other_node.metadata.get('backup/paths'): for path in other_node.metadata.get('backup/paths'):
for dataset, config in other_node.metadata.get('zfs/datasets').items(): for dataset, config in other_node.metadata.get('zfs/datasets').items():

View file

@ -39,7 +39,7 @@ else
echo "INCREMENTAL BACKUP" echo "INCREMENTAL BACKUP"
last_bookmark=$(zfs list -t bookmark -H -o name | grep "^$source_dataset#$bookmark_prefix" | sort | tail -1 | cut -d '#' -f 2) last_bookmark=$(zfs list -t bookmark -H -o name | grep "^$source_dataset#$bookmark_prefix" | sort | tail -1 | cut -d '#' -f 2)
[[ -z "$last_bookmark" ]] && echo "ERROR - last_bookmark is empty" && exit 98 [[ -z "$last_bookmark" ]] && echo "ERROR - last_bookmark is empty" && exit 98
$(zfs send -v -L -c -i "#$last_bookmark" "$source_dataset@$new_bookmark" | $ssh sudo zfs recv "$target_dataset") $(zfs send -v -L -i "#$last_bookmark" "$source_dataset@$new_bookmark" | $ssh sudo zfs recv "$target_dataset")
fi fi
if [[ "$?" == "0" ]] if [[ "$?" == "0" ]]

View file

@ -27,7 +27,7 @@ do
echo "INCREMENTAL BACKUP" echo "INCREMENTAL BACKUP"
last_bookmark=$(zfs list -t bookmark -H -o name | grep "^$dataset#$bookmark_prefix" | sort | tail -1 | cut -d '#' -f 2) last_bookmark=$(zfs list -t bookmark -H -o name | grep "^$dataset#$bookmark_prefix" | sort | tail -1 | cut -d '#' -f 2)
[[ -z "$last_bookmark" ]] && echo "ERROR - last_bookmark is empty" && exit 98 [[ -z "$last_bookmark" ]] && echo "ERROR - last_bookmark is empty" && exit 98
$(zfs send -v -c -L -i "#$last_bookmark" "$dataset@$new_bookmark" | $ssh sudo zfs recv "$dataset" -o mountpoint=none) $(zfs send -v -L -i "#$last_bookmark" "$dataset@$new_bookmark" | $ssh sudo zfs recv "$dataset" -o mountpoint=none)
fi fi
if [[ "$?" == "0" ]] if [[ "$?" == "0" ]]

View file

@ -5,9 +5,6 @@
'metadata': { 'metadata': {
'backup': { 'backup': {
'server': 'home.backups', 'server': 'home.backups',
'paths': {
'/etc',
},
}, },
} }
} }