backup.sh: ikke print alle standard-flaggene for rsync-kommando

This commit is contained in:
2026-01-28 17:25:07 +09:00
parent 7c54deef99
commit a90755bdd7

View File

@@ -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