backup.sh: ikke print alle standard-flaggene for rsync-kommando
This commit is contained in:
33
backup.sh
33
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
|
||||
|
||||
Reference in New Issue
Block a user