style: more compact code

This commit is contained in:
bot-ece477 2026-03-17 18:58:31 +08:00
parent 5e8a2ae862
commit 573e2264c5

View File

@ -3,12 +3,10 @@
DATE=$(date +"%y%m%d") DATE=$(date +"%y%m%d")
bck_list() { bck_list() {
zfs list -t snapshot zfs list -t snapshot
} }
bck_update() { bck_update() {
zfs set sync=standard joj zfs set sync=standard joj
sleep 5 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')) 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\/} zfs send -v -i ${LIST[i]}@${LIST[$((i+1))]} ${LIST[i]}@$DATE | ssh manuel@202.121.180.23 ${LIST[i]/joj\/}
done done
zfs set sync=disabled joj zfs set sync=disabled joj
} }
bck_prune() { 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')) 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 for((i=0; i < ${#LIST[@]}; i+=2)); do
[ "${LIST[$((i+1))]}" != "null" ] && zfs destroy ${LIST[i]}@%${LIST[$((i+1))]} [ "${LIST[$((i+1))]}" != "null" ] && zfs destroy ${LIST[i]}@%${LIST[$((i+1))]}
done done
} }
bck_init() { bck_init() {
zfs set sync=standard joj zfs set sync=standard joj
sleep 5 sleep 5
zfs snapshot joj/$FS zfs snapshot joj/$FS
zfs send -v joj/$FS | ssh manuel@202.121.180.23 $FS zfs send -v joj/$FS | ssh manuel@202.121.180.23 $FS
zfs set sync=disabled joj zfs set sync=disabled joj
} }
test_net() { test_net() {
if ! ping -c 1 202.121.180.23; then if ! ping -c 1 202.121.180.23; then
echo "Error: backup server cannot be reached." echo "Error: backup server cannot be reached."
exit 20 exit 20
fi fi
} }
case $1 in case $1 in
list) list)
bck_list bck_list
;; ;;
update) update)
test_net test_net
bck_update bck_update
;; ;;
prune) prune)
bck_prune bck_prune
;; ;;
init) init)
test_net test_net
shift shift
@ -75,7 +62,6 @@ case $1 in
bck_init bck_init
fi fi
;; ;;
*) *)
echo "Usage: $0 [list|init FSname|update|prune]" echo "Usage: $0 [list|init FSname|update|prune]"
;; ;;