stuff
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
now=$(date +"%Y%m%d%H%M")
|
||||
backup_dir=/home/beeshare/raid/serverBackup
|
||||
image=docker.io/vaultwarden/server:1.37.1
|
||||
container=vaultwarden-restoretest
|
||||
port=18222
|
||||
work=$(mktemp -d)
|
||||
|
||||
cleanup() {
|
||||
podman rm -f ${container} >/dev/null 2>&1 || true
|
||||
rm -rf "${work}"
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
latest=$(ls -1t ${backup_dir}/beeserver_*.tar.gz.gpg | head -1)
|
||||
echo "[${now}] restore test using ${latest}"
|
||||
|
||||
gpg --batch --passphrase-file /opt/backup/passphrase.txt -d "${latest}" \
|
||||
| tar -xzf - -C "${work}" opt/backup/beeserver/vaultwarden
|
||||
|
||||
data="${work}/opt/backup/beeserver/vaultwarden/data"
|
||||
|
||||
[[ -s "${data}/db.sqlite3" ]]
|
||||
[[ -s "${data}/rsa_key.pem" ]]
|
||||
echo " db and rsa_key present"
|
||||
|
||||
integrity=$(sqlite3 "${data}/db.sqlite3" "PRAGMA integrity_check;")
|
||||
[[ "${integrity}" == "ok" ]]
|
||||
echo " integrity_check ok"
|
||||
|
||||
users=$(sqlite3 "${data}/db.sqlite3" "select count(*) from users;")
|
||||
[[ "${users}" -ge 1 ]]
|
||||
echo " users ${users}"
|
||||
|
||||
email=$(sqlite3 "${data}/db.sqlite3" "select email from users limit 1;")
|
||||
|
||||
podman run -d --rm --name ${container} -p 127.0.0.1:${port}:80 -v "${data}":/data ${image} >/dev/null
|
||||
|
||||
for _ in $(seq 60)
|
||||
do
|
||||
if curl -sf http://127.0.0.1:${port}/api/config >/dev/null 2>&1
|
||||
then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
config=$(curl -sf http://127.0.0.1:${port}/api/config)
|
||||
[[ "${config}" == *'"version"'* ]]
|
||||
echo " api/config ok"
|
||||
|
||||
prelogin=$(curl -sf -X POST http://127.0.0.1:${port}/identity/accounts/prelogin \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d "{\"email\":\"${email}\"}")
|
||||
[[ "${prelogin}" == *[Kk]df* ]]
|
||||
echo " prelogin ok for ${email}"
|
||||
|
||||
echo "[${now}] restore test PASSED"
|
||||
Reference in New Issue
Block a user