diff --git a/Dockerfile b/Dockerfile index dfc498a..57db04c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,6 +11,8 @@ RUN apk add --no-cache \ ENV DB_FILE /data/db.sqlite3 ENV BACKUP_FILE /data/db_backup/backup.sqlite3 +ENV ATTACHMENT_BACKUP_FILE=/data/attachments_backup/attachments +ENV ATTACHMENT_DIR=/data/attachments ENV BACKUP_FILE_PERMISSIONS 700 ENV CRON_TIME "0 5 * * *" ENV TIMESTAMP false diff --git a/backup.sh b/backup.sh index a76607d..cd65391 100644 --- a/backup.sh +++ b/backup.sh @@ -10,10 +10,13 @@ fi if [ $TIMESTAMP = true ] then FINAL_BACKUP_FILE="$(echo "$BACKUP_FILE")_$(date "+%F-%H%M%S")" + FINAL_BACKUP_ATTACHMENT="$(echo "$ATTACHMENT_BACKUP_FILE")_$(date "+%F-%H%M%S")" else FINAL_BACKUP_FILE=$BACKUP_FILE + FINAL_BACKUP_ATTACHMENT=$ATTACHMENT_BACKUP_FILE fi + /usr/bin/sqlite3 $DB_FILE ".backup $FINAL_BACKUP_FILE" if [ $? -eq 0 ] then @@ -22,7 +25,10 @@ else echo "$(date "+%F %T") - Backup unsuccessfull" fi +/bin/tar -cvzf ${FINAL_BACKUP_ATTACHMENT}.tgz ${ATTACHMENT_DIR} + if [ ! -z $DELETE_AFTER ] && [ $DELETE_AFTER -gt 0 ] then find $(dirname "$BACKUP_FILE") -name "$(basename "$BACKUP_FILE")*" -type f -mtime +$DELETE_AFTER -exec rm -f {} \; -exec echo "Deleted {} after $DELETE_AFTER days" \; + find $(dirname "$ATTACHMENT_BACKUP_FILE") -name "$(basename "$ATTACHMENT_BACKUP_FILE")*" -type f -mtime +$DELETE_AFTER -exec rm -f {} \; -exec echo "Deleted {} after $DELETE_AFTER days" \; fi diff --git a/entrypoint.sh b/entrypoint.sh index 452a908..4fe0238 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -15,6 +15,13 @@ then install -o $UID -g $GID -m $BACKUP_FILE_PERMISSIONS -d $BACKUP_DIR fi +ATTACHMENT_BACKUP_DIR=$(dirname "$ATTACHMENT_BACKUP_FILE") +if [ ! -d "$ATTACHMENT_BACKUP_DIR" ] +then + echo "$ATTACHMENT_BACKUP_DIR not exists. Creating it with owner $UID:$GID and permissions $BACKUP_FILE_PERMISSIONS." + install -o $UID -g $GID -m $BACKUP_FILE_PERMISSIONS -d $ATTACHMENT_BACKUP_DIR +fi + # For compatibility reasons if [ "$1" = "/backup.sh" ]; then >&2 echo "Using /backup.sh is deprecated and will be removed in future versions! Please use \`manual\` as argument instead"