From a90755bdd7fcd8a41ab45743ba7b0613316cd548 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Wed, 28 Jan 2026 17:25:07 +0900 Subject: [PATCH] backup.sh: ikke print alle standard-flaggene for rsync-kommando --- backup.sh | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/backup.sh b/backup.sh index 2678785..a271d75 100755 --- a/backup.sh +++ b/backup.sh @@ -17,6 +17,8 @@ # men du kan alternativt bruke nøkkelen som ligger i '~/.ssh/id_ed25519.pub'. # I førstnevnte tilfelle må du også registrere boksen i './ssh_config_backup_targets'. + +# === Sjekk at nødvendige verktøy er installert. === declare -ra required_tools=( rsync ssh @@ -47,6 +49,8 @@ if [ \ exit 1 fi +# === Start === + echo "PVV; hjemmelaget backupscript (\$ git commit sha: $(cd /backupz && git rev-parse HEAD) \$)" echo date @@ -57,8 +61,8 @@ if [ "$1" = "full" ]; then # Fullbackupen starter før midnatt, legg på en dag declare -r snapshot_date=$(date -v +1d +%Y%m%d) fi +# Sjekk om en annen backup kjører eller om forrige backup ble avbrutt. declare -r lockfile="/backupz/backup.sh.lock" - if [ -e $lockfile ]; then declare -r existing_pid="$(cat $lockfile)" @@ -92,8 +96,10 @@ echo "$$" > "$lockfile" echo "Sjekker at det er nok ledig plass på disken..." zfs get available principal/backupz -#while [ $(/bin/df /backupz/ | /usr/bin/awk '/^backupz/{print $4}' ) -lt 100000000 ] ; do -while [ "$(zfs get -Hp available principal/backupz | cut -f3)" -lt 50000000000 ] ; do +# Dette tilsvarer 50 GB, juster etter behov. +declare -r min_free_space=50000000000 + +while [ "$(zfs get -Hp available principal/backupz | cut -f3)" -lt "$min_free_space" ] ; do echo; echo "Disken er nesten full, rydder"; echo @@ -309,17 +315,8 @@ declare -ra rsync_flags=( ) declare -r logdir="/backupz/log" -# Gjør selve overføringen. -# Start på en liste over PID vi skal vente på. declare -A venteproc=() -# Ikke kjoer med --checkum. Den er nyttig senere for aa detektere bitraate. -# # Gjør "full"-backup på søndager. -# if [ "$1" = "full" ]; then # Det er søndag -# echo "Det er søndag; tar «full»-backup." -# rsync_flags="${rsync_flags[@]} --checksum" -# fi - echo "Starter rsync for følgende verter: ${hosts[*]}" echo for host in "${hosts[@]}"; do @@ -357,7 +354,10 @@ for host in "${hosts[@]}"; do venteproc[$!]="$host" echo "Startet $!:" echo "${command[0]} \\" - for ((i=1; i<${#command[@]}-1; i++)); do + # Ikke print de første rsync-flagga i kommandoen + echo " # ...standard rsync-flagg... \\" + declare -i start_index=$((1 + ${#rsync_flags[@]})) + for ((i="$start_index"; i<${#command[@]}-1; i++)); do echo " ${command[i]} \\" done echo " ${command[-1]}" @@ -365,7 +365,6 @@ for host in "${hosts[@]}"; do done echo "Rsync er i gang." -# Vent til rsync er ferdig. echo "Venter til rsync er ferdig: ${!venteproc[*]}" echo @@ -394,16 +393,10 @@ declare -ri end_time="$(date +%s)" declare -ri elapsed_time="$((end_time - start_time))" printf 'Tid brukt på rsync: %03d:%02d:%02d\n' $((elapsed_time/3600)) $(((elapsed_time/60)%60)) $((elapsed_time%60)) -# Behoeves ikke da principal ikke har almen brukerinnlogging. -# # Gjør hjemmemappene lesbare bare for brukeren. -# find /backupz/homepvv/export/home/pvv -maxdepth 2 -mindepth 2 -exec chmod 700 {} \; - # Touch home slik at timestamp på snapshot blir når backup var ferdig. touch /backupz/homepvv/export/home -# Ta et zfs snapshot echo "Tar ZFS-snapshot..." - zfs snapshot -r "principal/backupz@${snapshot_date}" && \ echo "ZFS-snapshot ferdig." || echo "ZFS-snapshot FEILET!" echo