backup.sh: sleng på flere declare og kommentarer
This commit is contained in:
84
backup.sh
84
backup.sh
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user