diff --git a/admin/scripts/joj-container-backup b/admin/scripts/joj-container-backup index 083f556..93b2d48 100755 --- a/admin/scripts/joj-container-backup +++ b/admin/scripts/joj-container-backup @@ -3,12 +3,10 @@ DATE=$(date +"%y%m%d") bck_list() { - zfs list -t snapshot } bck_update() { - zfs set sync=standard joj sleep 5 LIST=($(zfs list -j -t snapshot | jq -rc '[ .datasets | .[] | {dataset: .dataset, version: .snapshot_name} ] | group_by(.dataset) | map({(.[0].dataset): .[-1].version}) | .[]' | tr "\n" " " | sed 's/[{}:"]/ /g')) @@ -17,53 +15,42 @@ bck_update() { zfs send -v -i ${LIST[i]}@${LIST[$((i+1))]} ${LIST[i]}@$DATE | ssh manuel@202.121.180.23 ${LIST[i]/joj\/} done zfs set sync=disabled joj - } bck_prune() { - LIST=($(zfs list -j -t snapshot | jq -rc '[ .datasets | .[] | {dataset: .dataset, version: .snapshot_name} ] | group_by(.dataset) | map({(.[0].dataset): .[-3].version}) | .[]' | tr "\n" " " | sed 's/[{}:"]/ /g')) for((i=0; i < ${#LIST[@]}; i+=2)); do [ "${LIST[$((i+1))]}" != "null" ] && zfs destroy ${LIST[i]}@%${LIST[$((i+1))]} done - } bck_init() { - zfs set sync=standard joj sleep 5 zfs snapshot joj/$FS zfs send -v joj/$FS | ssh manuel@202.121.180.23 $FS zfs set sync=disabled joj - } test_net() { - if ! ping -c 1 202.121.180.23; then echo "Error: backup server cannot be reached." exit 20 fi - } case $1 in - list) bck_list ;; - update) test_net bck_update ;; - prune) bck_prune ;; - init) test_net shift @@ -75,7 +62,6 @@ case $1 in bck_init fi ;; - *) echo "Usage: $0 [list|init FSname|update|prune]" ;;