feat: support 7z archive
This commit is contained in:
@@ -7,6 +7,6 @@ LABEL "repository"="https://github.com/ttionya/BitwardenRS-Backup" \
|
||||
COPY scripts/*.sh /app/
|
||||
|
||||
RUN chmod +x /app/*.sh \
|
||||
&& apk add --no-cache bash sqlite zip heirloom-mailx tzdata
|
||||
&& apk add --no-cache bash sqlite p7zip heirloom-mailx tzdata
|
||||
|
||||
ENTRYPOINT ["/app/entrypoint.sh"]
|
||||
|
||||
@@ -22,6 +22,7 @@ services:
|
||||
# CRON: '5 * * * *'
|
||||
# ZIP_ENABLE: 'TRUE'
|
||||
# ZIP_PASSWORD: 'WHEREISMYPASSWORD?'
|
||||
# ZIP_TYPE: 'zip'
|
||||
# BACKUP_FILE_DATE_SUFFIX: ''
|
||||
# BACKUP_KEEP_DAYS: 0
|
||||
# MAIL_SMTP_ENABLE: 'FALSE'
|
||||
|
||||
@@ -15,7 +15,7 @@ function backup_init() {
|
||||
# backup bitwarden_rs attachments directory
|
||||
BACKUP_FILE_ATTACHMENTS="${BACKUP_DIR}/attachments.${NOW}.tar"
|
||||
# backup zip file
|
||||
BACKUP_FILE_ZIP="${BACKUP_DIR}/backup.${NOW}.zip"
|
||||
BACKUP_FILE_ZIP="${BACKUP_DIR}/backup.${NOW}.${ZIP_TYPE}"
|
||||
}
|
||||
|
||||
function backup_db() {
|
||||
@@ -70,13 +70,17 @@ function backup_package() {
|
||||
|
||||
UPLOAD_FILE="${BACKUP_FILE_ZIP}"
|
||||
|
||||
zip -jP "${ZIP_PASSWORD}" "${BACKUP_FILE_ZIP}" "${BACKUP_DIR}"/*
|
||||
if [[ "${ZIP_TYPE}" == "zip" ]]; then
|
||||
7z a -tzip -mx=9 -p"${ZIP_PASSWORD}" "${BACKUP_FILE_ZIP}" "${BACKUP_DIR}"/*
|
||||
else
|
||||
7z a -t7z -m0=lzma2 -mx=9 -mfb=64 -md=32m -ms=on -p"${ZIP_PASSWORD}" "${BACKUP_FILE_ZIP}" "${BACKUP_DIR}"/*
|
||||
fi
|
||||
|
||||
ls -lah "${BACKUP_DIR}"
|
||||
|
||||
color blue "display backup zip file list"
|
||||
color blue "display backup ${ZIP_TYPE} file list"
|
||||
|
||||
zip -sf "${BACKUP_FILE_ZIP}"
|
||||
7z l "${BACKUP_FILE_ZIP}"
|
||||
else
|
||||
color yellow "skip package backup files"
|
||||
|
||||
|
||||
@@ -125,6 +125,14 @@ function init_env() {
|
||||
ZIP_PASSWORD="WHEREISMYPASSWORD?"
|
||||
fi
|
||||
|
||||
# ZIP_TYPE
|
||||
ZIP_TYPE=$(echo "${ZIP_TYPE}" | tr '[A-Z]' '[a-z]')
|
||||
if [[ "${ZIP_TYPE}" == "7z" ]; then
|
||||
ZIP_TYPE="7z"
|
||||
else
|
||||
ZIP_TYPE="zip"
|
||||
fi
|
||||
|
||||
# BACKUP_KEEP_DAYS
|
||||
local BACKUP_KEEP_DAYS_DEFAULT="0"
|
||||
if [[ -z "${BACKUP_KEEP_DAYS}" ]]; then
|
||||
@@ -172,6 +180,7 @@ function init_env() {
|
||||
color yellow "RCLONE_REMOTE: ${RCLONE_REMOTE}"
|
||||
color yellow "ZIP_ENABLE: ${ZIP_ENABLE}"
|
||||
color yellow "ZIP_PASSWORD: ${#ZIP_PASSWORD} Chars"
|
||||
color yellow "ZIP_TYPE: ${ZIP_TYPE}"
|
||||
color yellow "BACKUP_FILE_DATE_FORMAT: ${BACKUP_FILE_DATE_FORMAT}"
|
||||
color yellow "BACKUP_KEEP_DAYS: ${BACKUP_KEEP_DAYS}"
|
||||
color yellow "MAIL_SMTP_ENABLE: ${MAIL_SMTP_ENABLE}"
|
||||
|
||||
@@ -20,9 +20,9 @@ function restore_zip() {
|
||||
local FIND_FILE_ATTACHMENTS
|
||||
|
||||
if [[ -n "${ZIP_PASSWORD}" ]]; then
|
||||
unzip -P "${ZIP_PASSWORD}" "${RESTORE_FILE_ZIP}" -d "${RESTORE_EXTRACT_DIR}"
|
||||
7z e -aoa -p"${ZIP_PASSWORD}" -o"${RESTORE_EXTRACT_DIR}" "${RESTORE_FILE_ZIP}"
|
||||
else
|
||||
unzip "${RESTORE_FILE_ZIP}" -d "${RESTORE_EXTRACT_DIR}"
|
||||
7z e -aoa -o"${RESTORE_EXTRACT_DIR}" "${RESTORE_FILE_ZIP}"
|
||||
fi
|
||||
|
||||
if [[ $? == 0 ]]; then
|
||||
|
||||
Reference in New Issue
Block a user