backup.sh: sleng på flere declare og kommentarer

This commit is contained in:
2026-01-28 02:55:35 +09:00
parent 6f725f939d
commit 8ada9f24a6

View File

@@ -23,15 +23,15 @@ date
# Blir brukt som navn på ZFS-snapshot og logger.
snapshot="$(date +%Y%m%d)"
declare -r snapshot="$(date +%Y%m%d)"
if [ "$1" = "full" ]; then # Fullbackupen starter før midnatt, legg på en dag
snapshot=$(date -v +1d +%Y%m%d)
declare -r snapshot=$(date -v +1d +%Y%m%d)
fi
lockfile="/backupz/backup.sh.lock"
declare -r lockfile="/backupz/backup.sh.lock"
if [ -e $lockfile ]; then
pid="$(cat $lockfile)"
declare -r pid="$(cat $lockfile)"
# TODO: Bruk bedre metode for å finne prosess.
if ps -p "$pid"; then
@@ -69,7 +69,7 @@ while [ "$(zfs get -Hp available principal/backupz | cut -f3)" -lt 50000000000 ]
echo "Disken er nesten full, rydder";
echo
min_backups=5
declare -ri min_backups=5
if [ "$(zfs list -t snapshot | grep -c "backupz@")" -lt "$min_backups" ]; then
echo;
echo "Mindre enn $min_backups backups lagret, feiger ut fra sletting";
@@ -77,7 +77,7 @@ while [ "$(zfs get -Hp available principal/backupz | cut -f3)" -lt 50000000000 ]
break;
fi
oldest=$(zfs list -t snapshot | grep backupz@ | head -n1 | tr @ ' ' | awk '{print $2}')
declare -r oldest=$(zfs list -t snapshot | grep backupz@ | head -n1 | tr @ ' ' | awk '{print $2}')
echo "Kjører zfs destroy på alle disker @$oldest"
for d in $(zfs list | grep ^principal/backupz | awk '{print $1}'); do
zfs destroy "$d@$oldest"
@@ -98,7 +98,7 @@ echo
# med en egen json-fil og litt jq-magi?
# Liste over vertsmaskiner som skal tas backup av.
declare hosts=()
declare -a hosts=()
# SSH-vertsnavn hvis det er forskjellig fra vertsnavnet i listen.
declare -A host_ssh_hostname=()
@@ -106,12 +106,13 @@ declare -A host_ssh_hostname=()
# Backup-katalog hvis den er forskjellig fra vertsnavnet i listen.
declare -A hosts_output_dir=()
# ameno
hosts+=("ameno")
declare -r ameno_includes=(
declare -ra ameno_includes=(
"/"
"/boot/firmware"
)
declare -r ameno_excludes=(
declare -ra ameno_excludes=(
"/var/cache/"
"/var/lib/snapd/"
"/var/log/journal/"
@@ -121,60 +122,61 @@ declare -r ameno_excludes=(
# hosts+=("knakelibrak_wiki")
# host_ssh_hostname["knakelibrak_wiki"]="wiki"
# hosts_output_dir["knakelibrak_wiki"]="wiki"
# declare -r wiki_includes=(
# declare -ra wiki_includes=(
# "/var/lib/mediawiki"
# )
# declare -r wiki_excludes=()
# declare -ra wiki_excludes=()
# knakelibrak (databases)
# hosts+=("knakelibrak_databases")
# host_ssh_hostname["knakelibrak_databases"]="knakelibrak"
# hosts_output_dir["knakelibrak_databases"]="databases"
# declare -r knakelibrak_databases_includes=(
# declare -ra knakelibrak_databases_includes=(
# "/var/backups/databases"
# )
# declare -r knakelibrak_databases_excludes=()
# declare -ra knakelibrak_databases_excludes=()
# jokum (synapse)
# hosts+=("jokum_synapse")
# host_ssh_hostname["jokum_synapse"]="jokum"
# hosts_output_dir["jokum_synapse"]="jokum/synapse"
# declare -r jokum_synapse_includes=(
# declare -ra jokum_synapse_includes=(
# "/data/synapse/"
# )
# declare -r jokum_synapse_excludes=()
# declare -ra jokum_synapse_excludes=()
# skrotnisse
# hosts+=("skrotnisse")
# declare -r skrotnisse_includes=(
# declare -ra skrotnisse_includes=(
# "/var/www/"
# "/srv/"
# )
# declare -r skrotnisse_excludes=()
# declare -ra skrotnisse_excludes=()
# dash8
# hosts+=("dash8")
# declare -r dash8_includes=(
# declare -ra dash8_includes=(
# "/var/lib/bitlbee/"
# )
# declare -r dash8_excludes=()
# declare -ra dash8_excludes=()
# tim
# hosts+=("tim")
# hosts_output_dir["tim"]="web"
# declare -r tim_includes=(
# declare -ra tim_includes=(
# "/var/lib/squirrelmail"
# )
# declare -r tim_excludes=()
# declare -ra tim_excludes=()
# microbel (hjemmeområder)
hosts+=("homepvv")
declare -r homepvv_includes=(
declare -ra homepvv_includes=(
"/"
"/boot"
"/export/home/pvv"
"/var"
)
declare -r homepvv_excludes=(
declare -ra homepvv_excludes=(
# Se ./homepvv.exclude - den skal bli plukket opp automatisk
)
@@ -182,47 +184,51 @@ declare -r homepvv_excludes=(
# Minecraft-verden kopieres fra /var/backups/minecraft/current/ istf.
# /srv/minecraft-pvv/.
hosts+=("innovation")
declare -r innovation_includes=(
declare -ra innovation_includes=(
"/"
"/boot/efi"
)
declare -r innovation_excludes=(
declare -ra innovation_excludes=(
"/srv/minecraft-pvv/"
"/var/cache/"
"/var/db/freebsd-update/files/"
)
# lommel
# hosts+=("lommel")
# declare -r lommel_includes=(
# declare -ra lommel_includes=(
# "/"
# )
# declare -r lommel_excludes=(
# declare -ra lommel_excludes=(
# se ./lommel.exclude - den skal bli plukket opp automatisk
# )
# sleipner
hosts+=("sleipner")
declare -r sleipner_includes=(
declare -ra sleipner_includes=(
"/"
)
declare -r sleipner_excludes=(
declare -ra sleipner_excludes=(
"/scratch/"
"/var/cache/"
)
# spikkjeposche
# hosts+=("spikkjeposche")
# declare -r spikkjeposche_includes=(
# declare -ra spikkjeposche_includes=(
# "/usr/local/www"
# "/usr/local/etc/lighttpd"
# "/etc/ssl/private"
# )
# declare -r spikkjeposche_excludes=()
# declare -ra spikkjeposche_excludes=()
# tom
hosts+=("tom")
declare -r tom_includes=(
declare -ra tom_includes=(
"/"
"/boot/efi"
)
declare -r tom_excludes=(
declare -ra tom_excludes=(
"/var/cache/"
)
### Slutt på liste over vertsmaskiner og hva som skal tas backup av. ###
@@ -230,7 +236,7 @@ declare -r tom_excludes=(
#export RSYNC_RSH="ssh -c arcfour -v"
export RSYNC_RSH="ssh -v"
declare -r rsync="/usr/local/bin/rsync"
rsync_flags=(
declare -ra rsync_flags=(
--archive
--hard-links
--one-file-system
@@ -256,14 +262,14 @@ declare -A venteproc=()
# fi
for host in "${hosts[@]}"; do
command=(
declare -a command=(
"$rsync"
"${rsync_flags[@]}"
"--log-file=${logdir}/${host}.log.$snapshot"
)
exclude_paths_var="${host}_excludes[@]"
exclude_paths=("${!exclude_paths_var}")
declare exclude_paths_var="${host}_excludes[@]"
declare -a exclude_paths=("${!exclude_paths_var}")
for exclude in "${exclude_paths[@]}"; do
command+=("--exclude=${exclude}")
done
@@ -272,8 +278,8 @@ for host in "${hosts[@]}"; do
command+=("--exclude-from=/backupz/${host}.exclude")
fi
include_paths_var="${host}_includes[@]"
include_paths=("${!include_paths_var}")
declare include_paths_var="${host}_includes[@]"
declare -a include_paths=("${!include_paths_var}")
if [ "${#include_paths[@]}" -eq 0 ]; then
echo "Ingen inkluderingsstier for vert $host, hopper over."
continue