From 9028a785fcabf550e3a12c9ab8ac4b0301efdc10 Mon Sep 17 00:00:00 2001 From: Nilstrieb <48135649+Nilstrieb@users.noreply.github.com> Date: Tue, 6 Feb 2024 17:53:57 +0100 Subject: [PATCH] xz the world --- vps2/backup.sh | 46 ++++++++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/vps2/backup.sh b/vps2/backup.sh index a2a9d2a..5e5bdcf 100755 --- a/vps2/backup.sh +++ b/vps2/backup.sh @@ -7,12 +7,19 @@ PREFIX="1/$(date --rfc-3339 seconds --utc)" cd /apps -function upload { +function upload_file { local file="$1" - aws s3api put-object --bucket "$BUCKET" --key "${PREFIX}/${file}" --body "${file}" + local tmppath + tmppath="$(mktemp)" + + cp "$file" "$tmppath" + xz "$tmppath" + aws s3api put-object --bucket "$BUCKET" --key "${PREFIX}/${file}.xz" --body "${tmppath}.xz" + + rm "$tmppath.xz" } -function pg_dump { +function upload_pg_dump { local appname="$1" local containername="$2" local dbname="$3" @@ -22,13 +29,14 @@ function pg_dump { docker exec "$containername" pg_dump --format=custom --file /tmp/db.bak --host "127.0.0.1" --dbname "$dbname" --username "$username" docker cp "$containername:/tmp/db.bak" "$tmppath" - aws s3api put-object --bucket "$BUCKET" --key "${PREFIX}/$appname/db.bak" --body "$tmppath" + xz "$tmppath" + aws s3api put-object --bucket "$BUCKET" --key "${PREFIX}/$appname/postgres.bak.xz" --body "$tmppath.xz" docker exec "$containername" rm "/tmp/db.bak" - rm "$tmppath" + rm "$tmppath.xz" } -function dump_mongo { +function upload_dump_mongo { local appname="$1" local containername="$2" local usernamepassword="$3" @@ -37,14 +45,14 @@ function dump_mongo { docker exec "$containername" mongodump --archive=/tmp/db.bak --uri="mongodb://${usernamepassword}@127.0.0.1:27017" docker cp "$containername:/tmp/db.bak" "$tmppath" - aws s3api put-object --bucket "$BUCKET" --key "${PREFIX}/$appname/db.bak" --body "$tmppath" + xz "$tmppath" + aws s3api put-object --bucket "$BUCKET" --key "${PREFIX}/$appname/db.bak.xz" --body "$tmppath.xz" docker exec "$containername" rm "/tmp/db.bak" - rm "$tmppath" - + rm "$tmppath.xz" } -function upload_directory_xz { +function upload_directory { local appname="$1" local directory="$2" local filename="$3" @@ -57,16 +65,18 @@ function upload_directory_xz { rm "$tmppath" } -upload "bisect-rustc-service/db.sqlite" -upload "killua/trivia_questions.json" -upload "uptime/uptime.db" +upload_file "bisect-rustc-service/db.sqlite" +upload_file "killua/trivia_questions.json" +upload_file "uptime/uptime.db" -pg_dump "cors-school" "cors-school-db" "davinci" "postgres" -pg_dump "hugo-chat" "hugo-chat-db" "postgres" "postgres" -pg_dump "openolat" "openolat-db" "oodb" "oodbu" +upload_pg_dump "cors-school" "cors-school-db" "davinci" "postgres" +upload_pg_dump "hugo-chat" "hugo-chat-db" "postgres" "postgres" +upload_pg_dump "openolat" "openolat-db" "oodb" "oodbu" # shellcheck disable=SC1091 source "karin-bot/.env" -dump_mongo "karin-bot" "karin-bot-db" "$MONGO_INITDB_ROOT_USERNAME:$MONGO_INITDB_ROOT_PASSWORD" +upload_dump_mongo "karin-bot" "karin-bot-db" "$MONGO_INITDB_ROOT_USERNAME:$MONGO_INITDB_ROOT_PASSWORD" -upload_directory_xz "openolat" "openolat/olatdata" "olatdata.tar.xz" +upload_directory "openolat" "openolat/olatdata" "olatdata.tar.xz" + +echo "Finished backup!"