Update script using best practices

This commit is contained in:
adrien 2022-04-19 00:05:30 +02:00
parent 32f5d053f1
commit 44fe0ab8f9
Signed by: adrien
GPG Key ID: 4F17BEA67707AC21
2 changed files with 28 additions and 29 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.idea/

View File

@ -1,52 +1,50 @@
#! /usr/bin/env bash #! /usr/bin/env bash
# all executed commands are printed to stdout # All executed commands are printed to stdout
set -x set -x
# redirect stdout (and stderr to stdout) to a file # Redirect stdout (and stderr to stdout) to a file
exec 1> /var/log/backup/vaultwarden-backup/vaultwarden-backup-$(date +%F).log 2>&1 exec 1>/var/log/backup/vaultwarden-backup/vaultwarden-backup-"$(date +%F)".log 2>&1
# abort on nonzero exitstatus # Abort on nonzero exit status
set -o errexit set -o errexit
# abort on unbound variable # Abort on unbound variable
set -o nounset set -o nounset
# don't hide errors within pipes # Don't hide errors within pipes
set -o pipefail set -o pipefail
# set your API key here # Set your API key here
key= key=
# set your chat id here # Set your chat id here
chat_id= chat_id=
function send_message() { function send_message() {
if [ $# -eq 0 ] if [ $# -eq 0 ]; then
then echo "No argument supplied, please specify the message to send"
echo "No argument supplied. Please specify the message to send." else
else curl --silent --show-error --fail --request POST "https://api.telegram.org/$key/sendMessage" --data chat_id="$chat_id" --data text="$1" --output /dev/null
curl --silent --show-error --fail --request POST https://api.telegram.org/${key}/sendMessage --data chat_id=${chat_id} --data text="${1}" --output /dev/null fi
fi
} }
function backup_vaultwarden { function backup_vaultwarden {
# retrieve the date in YYYY-MM-DD format and the timestamp in H-M-S format # Retrieve the date in YYYY-MM-DD format and the timestamp in H-M-S format
backup_time=$(date +%Y-%m-%d_%I-%M-%S) backup_time=$(date +%Y-%m-%d_%I-%M-%S)
# set the destination directory for backups
destination_directory=/var/local/vaultwarden/backups/${backup_time}
# create the destination directory
mkdir --parents ${destination_directory}
# save the SQLite 3 database # Set the destination directory for backups
if /usr/bin/sqlite3 /var/lib/vaultwarden/data/db.sqlite3 ".backup ${destination_directory}/backup.sqlite3" destination_directory=/var/local/vaultwarden/backups/${backup_time}
then
send_message "[Backup] - Vaultwarden has just been backuped." # Create the destination directory
else mkdir --parents "$destination_directory"
send_message "[Backup] - Error during Vaultwarden bacup. Please log in as soon as possible and see what went wrong."
fi # Save the SQLite 3 database
if /usr/bin/sqlite3 /var/lib/vaultwarden/data/db.sqlite3 ".backup $destination_directory/backup.sqlite3"; then
send_message "[Backup] - Vaultwarden has just been backed up"
else
send_message "[Backup] - Error during Vaultwarden backup, please log in as soon as possible and see what went wrong"
fi
} }
backup_vaultwarden backup_vaultwarden