Skip to content

Commit

Permalink
Quality of life improvements (#17)
Browse files Browse the repository at this point in the history
- Removed quotation marks with mounting volumes in docker-compose section.
- Replaced INFO prefix with each echo with a timestamp.
  - Subsequently, echoes that have a timestamp at the end have been adjusted to remove them.
- When deleting, it first checks if there are files to delete.
  - An appropriate echo will be shown in both circumstances.
  • Loading branch information
jmqm authored Jul 17, 2021
1 parent 0fb7abc commit 8573420
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 13 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ services:
image: jmqm/vaultwarden_backup:latest
container_name: vaultwarden_backup
volumes:
- "/vaultwarden_data_directory:/data:ro" # Read-only
- "/backup_directory:/backups"
- /vaultwarden_data_directory:/data:ro # Read-only
- /backup_directory:/backups
- "/etc/localtime:/etc/localtime:ro" # Container uses date from host.
- /etc/localtime:/etc/localtime:ro # Container uses date from host.
environment:
- DELETE_AFTER=30
- CRON_TIME=* */24 * * * # Runs at 12:00 AM.
Expand Down
2 changes: 1 addition & 1 deletion backup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ BACKUP_SENDS=sends # directory

# Create an archive of the files and directories.
cd /data && tar -Jcf $BACKUP_LOCATION $BACKUP_DB $BACKUP_RSA $BACKUP_CONFIG $BACKUP_ATTACHMENTS $BACKUP_SENDS 2>/dev/null && cd /
echo "[INFO] Created a new backup on $(date +"%F %r")."
echo "[$(date +"%F %r")] Created a new backup."
17 changes: 13 additions & 4 deletions delete.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,17 @@ sleep 1m
# Go to the backups directory.
cd /backups

# Delete tar.xz archives older than x days.
find . -iname "*.tar.xz" -type f -mtime +$DELETE_AFTER -exec rm -f {} \;
# Find all tar.xz archives older than x days and store them in a variable.
TO_DELETE=$(find . -iname "*.tar.xz" -type f -mtime +$DELETE_AFTER)

# Echo that script ran.
echo "[INFO] Deleted files older than $DELETE_AFTER days."
# Check if TO_DELETE is empty.
if [ ! -z "$TO_DELETE" ]; then
# Delete tar.xz archives older than x days.
find . -iname "*.tar.xz" -type f -mtime +$DELETE_AFTER -exec rm -f {} \;

# Echo that archives were deleted.
echo "[$(date +"%F %r")] Deleted archives older than $DELETE_AFTER days."
else
# Echo that there are no archives to delete.
echo "[$(date +"%F %r")] No archives older than $DELETE_AFTER days to delete."
fi
10 changes: 5 additions & 5 deletions entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ LOGS_FILE="/app/log/backup.log"

# If passed "manual", run backup script once ($1 = First argument passed).
if [ "$1" = "manual" ]; then
echo "[INFO] Running one-time, started at $(date +"%F %r")."
echo "[$(date +"%F %r")] Running one-time."
$BACKUP_CMD
exit 0
fi
Expand All @@ -15,16 +15,16 @@ fi
if [ "$(id -u)" -eq 0 ]; then
# Clear cron jobs.
echo "" | crontab -
echo "[INFO] Cron jobs cleared."
echo "[$(date +"%F %r")] Cron jobs cleared."

# Add backup script to cron jobs.
(crontab -l 2>/dev/null; echo "$CRON_TIME $BACKUP_CMD >> $LOGS_FILE 2>&1") | crontab -
echo "[INFO] Added backup script to cron jobs."
echo "[$(date +"%F %r")] Added backup script to cron jobs."

# Add delete script to cron jobs if DELETE_AFTER is not null and is greater than 0.
if [ -n "$DELETE_AFTER" ] && [ "$DELETE_AFTER" -gt 0 ]; then
(crontab -l 2>/dev/null; echo "$CRON_TIME $DELETE_CMD >> $LOGS_FILE 2>&1") | crontab -
echo "[INFO] Added delete script to cron jobs."
echo "[$(date +"%F %r")] Added delete script to cron jobs."
fi
fi

Expand All @@ -39,5 +39,5 @@ if [ "$(id -u)" -eq 0 ]; then
exec su-exec app:app "$0" "$@"
fi

echo "[INFO] Running automatically (${CRON_TIME}), started at $(date +"%F %r")." > "$LOGS_FILE"
echo "[$(date +"%F %r")] Running automatically (${CRON_TIME})." > "$LOGS_FILE"
tail -F "$LOGS_FILE" # Keeps terminal open and writes logs.

0 comments on commit 8573420

Please sign in to comment.