Files
beepi/playbooks/backup/backupDaily.sh
T
2026-05-26 17:21:03 +02:00

51 lines
1.2 KiB
Bash

#!/bin/bash
set -euo pipefail
now=$(date +"%Y%m%d%H%M")
declare -a arr=("gitea" "mail" "matrix" "monitoring")
declare -a monitoring=("monitoring_prometheus-data" "monitoring_grafana-storage" "monitoring_loki-data" "monitoring_alloy-data")
declare -a matrix=("matrix_db")
restore() {
for i in "${arr[@]}"; do
cd /opt/beeserver/${i}
podman-compose up -d
done
for j in "${monitoring[@]}"; do
rm -rf /opt/beeserver/monitoring/${j}.tar
done
for j in "${matrix[@]}"; do
rm -rf /opt/beeserver/matrix/${j}.tar
done
}
trap restore EXIT
for i in "${arr[@]}"
do
cd /opt/beeserver/${i}
podman-compose down -t 60
if [[ "$i" == "monitoring" ]]
then
for j in "${monitoring[@]}"
do
podman volume export ${j} --output ${j}.tar
done
fi
if [[ "$i" == "matrix" ]]
then
for j in "${matrix[@]}"
do
podman volume export ${j} --output ${j}.tar
done
fi
rsync -aH /opt/beeserver/${i} /opt/backup/beeserver
podman-compose up -d
done
tar -czf - /opt/backup/beeserver | gpg --batch --passphrase-file /opt/backup/passphrase.txt -c -o /home/beeshare/raid/serverBackup/beeserver_daily_${now}.tar.gz.gpg