diff --git a/helper-scripts/backup_and_restore.sh b/helper-scripts/backup_and_restore.sh index a34196f93..20ba96001 100755 --- a/helper-scripts/backup_and_restore.sh +++ b/helper-scripts/backup_and_restore.sh @@ -1,5 +1,7 @@ #!/usr/bin/env bash +DEBIAN_DOCKER_IMAGE="debian:buster-slim" + if [[ ! -z ${MAILCOW_BACKUP_LOCATION} ]]; then BACKUP_LOCATION="${MAILCOW_BACKUP_LOCATION}" fi @@ -79,32 +81,32 @@ function backup() { docker run --name mailcow-backup --rm \ -v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup \ -v $(docker volume ls -qf name=${CMPS_PRJ}_vmail-vol-1):/vmail:ro \ - debian:stretch-slim /bin/tar --warning='no-file-ignored' --use-compress-program="gzip --rsyncable --best" -Pcvpf /backup/backup_vmail.tar.gz /vmail + ${DEBIAN_DOCKER_IMAGE} /bin/tar --warning='no-file-ignored' --use-compress-program="gzip --rsyncable --best" -Pcvpf /backup/backup_vmail.tar.gz /vmail ;;& crypt|all) docker run --name mailcow-backup --rm \ -v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup \ -v $(docker volume ls -qf name=${CMPS_PRJ}_crypt-vol-1):/crypt:ro \ - debian:stretch-slim /bin/tar --warning='no-file-ignored' --use-compress-program="gzip --rsyncable --best" -Pcvpf /backup/backup_crypt.tar.gz /crypt + ${DEBIAN_DOCKER_IMAGE} /bin/tar --warning='no-file-ignored' --use-compress-program="gzip --rsyncable --best" -Pcvpf /backup/backup_crypt.tar.gz /crypt ;;& redis|all) docker exec $(docker ps -qf name=redis-mailcow) redis-cli save docker run --name mailcow-backup --rm \ -v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup \ -v $(docker volume ls -qf name=${CMPS_PRJ}_redis-vol-1):/redis:ro \ - debian:stretch-slim /bin/tar --warning='no-file-ignored' --use-compress-program="gzip --rsyncable --best" -Pcvpf /backup/backup_redis.tar.gz /redis + ${DEBIAN_DOCKER_IMAGE} /bin/tar --warning='no-file-ignored' --use-compress-program="gzip --rsyncable --best" -Pcvpf /backup/backup_redis.tar.gz /redis ;;& rspamd|all) docker run --name mailcow-backup --rm \ -v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup \ -v $(docker volume ls -qf name=${CMPS_PRJ}_rspamd-vol-1):/rspamd:ro \ - debian:stretch-slim /bin/tar --warning='no-file-ignored' --use-compress-program="gzip --rsyncable --best" -Pcvpf /backup/backup_rspamd.tar.gz /rspamd + ${DEBIAN_DOCKER_IMAGE} /bin/tar --warning='no-file-ignored' --use-compress-program="gzip --rsyncable --best" -Pcvpf /backup/backup_rspamd.tar.gz /rspamd ;;& postfix|all) docker run --name mailcow-backup --rm \ -v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup \ -v $(docker volume ls -qf name=${CMPS_PRJ}_postfix-vol-1):/postfix:ro \ - debian:stretch-slim /bin/tar --warning='no-file-ignored' --use-compress-program="gzip --rsyncable --best" -Pcvpf /backup/backup_postfix.tar.gz /postfix + ${DEBIAN_DOCKER_IMAGE} /bin/tar --warning='no-file-ignored' --use-compress-program="gzip --rsyncable --best" -Pcvpf /backup/backup_postfix.tar.gz /postfix ;;& mysql|all) SQLIMAGE=$(grep -iEo '(mysql|mariadb)\:.+' ${COMPOSE_FILE}) @@ -152,7 +154,7 @@ function restore() { docker run -it --name mailcow-backup --rm \ -v ${RESTORE_LOCATION}:/backup \ -v $(docker volume ls -qf name=${CMPS_PRJ}_vmail-vol-1):/vmail \ - debian:stretch-slim /bin/tar -Pxvzf /backup/backup_vmail.tar.gz + ${DEBIAN_DOCKER_IMAGE} /bin/tar -Pxvzf /backup/backup_vmail.tar.gz docker start $(docker ps -aqf name=dovecot-mailcow) echo echo "In most cases it is not required to run a full resync, you can run the command printed below at any time after testing wether the restore process broke a mailbox:" @@ -171,7 +173,7 @@ function restore() { docker run -it --name mailcow-backup --rm \ -v ${RESTORE_LOCATION}:/backup \ -v $(docker volume ls -qf name=${CMPS_PRJ}_redis-vol-1):/redis \ - debian:stretch-slim /bin/tar -Pxvzf /backup/backup_redis.tar.gz + ${DEBIAN_DOCKER_IMAGE} /bin/tar -Pxvzf /backup/backup_redis.tar.gz docker start $(docker ps -aqf name=redis-mailcow) ;; crypt) @@ -179,7 +181,7 @@ function restore() { docker run -it --name mailcow-backup --rm \ -v ${RESTORE_LOCATION}:/backup \ -v $(docker volume ls -qf name=${CMPS_PRJ}_crypt-vol-1):/crypt \ - debian:stretch-slim /bin/tar -Pxvzf /backup/backup_crypt.tar.gz + ${DEBIAN_DOCKER_IMAGE} /bin/tar -Pxvzf /backup/backup_crypt.tar.gz docker start $(docker ps -aqf name=dovecot-mailcow) ;; rspamd) @@ -187,7 +189,7 @@ function restore() { docker run -it --name mailcow-backup --rm \ -v ${RESTORE_LOCATION}:/backup \ -v $(docker volume ls -qf name=${CMPS_PRJ}_rspamd-vol-1):/rspamd \ - debian:stretch-slim /bin/tar -Pxvzf /backup/backup_rspamd.tar.gz + ${DEBIAN_DOCKER_IMAGE} /bin/tar -Pxvzf /backup/backup_rspamd.tar.gz docker start $(docker ps -aqf name=rspamd-mailcow) ;; postfix) @@ -195,7 +197,7 @@ function restore() { docker run -it --name mailcow-backup --rm \ -v ${RESTORE_LOCATION}:/backup \ -v $(docker volume ls -qf name=${CMPS_PRJ}_postfix-vol-1):/postfix \ - debian:stretch-slim /bin/tar -Pxvzf /backup/backup_postfix.tar.gz + ${DEBIAN_DOCKER_IMAGE} /bin/tar -Pxvzf /backup/backup_postfix.tar.gz docker start $(docker ps -aqf name=postfix-mailcow) ;; mysql)