Skip to content

Instantly share code, notes, and snippets.

@gpanders
Last active November 20, 2023 13:16

Revisions

  1. gpanders revised this gist Oct 23, 2019. No changes.
  2. gpanders revised this gist Oct 23, 2019. 2 changed files with 34 additions and 5 deletions.
    10 changes: 5 additions & 5 deletions docker-backup.sh
    Original file line number Diff line number Diff line change
    @@ -22,9 +22,9 @@ if [ $# -ne 2 ]; then
    fi

    VOLUME="$1"
    BACKUP="$2"
    ARCHIVE="$2/$VOLUME.tar.gz"

    echo "Backing up $VOLUME to $BACKUP"
    mkdir -p "$BACKUP"
    docker run --rm -v "$VOLUME":/from -v "$BACKUP":/to alpine tar cz${v}f /to/"$VOLUME".tar.gz -C /from .
    echo "Done."
    echo "Backing up $VOLUME to $ARCHIVE"
    mkdir -p $(dirname "$ARCHIVE")
    docker run --rm -v "$VOLUME":/from -v $(dirname "$ARCHIVE"):/to alpine tar cz${v}f /to/$(basename "$ARCHIVE") -C /from .
    echo "Done."
    29 changes: 29 additions & 0 deletions docker-restore.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,29 @@
    #!/bin/bash

    set -e

    usage() {
    echo "Usage: $(basename "$0") [-v] volume_name archive"
    }

    v=""
    while getopts "hv" o; do
    case "$o" in
    h) usage; exit 0 ;;
    v) v="v" ;;
    *) usage >&2; exit 1 ;;
    esac
    done
    shift $((OPTIND-1))

    if [ $# -ne 2 ]; then
    usage >&2
    exit 1
    fi

    VOLUME="$1"
    ARCHIVE="$2"

    echo "Restoring $VOLUME from $ARCHIVE"
    docker run --rm -v $(dirname "$ARCHIVE"):/from -v "$VOLUME":/to alpine tar xz${v}f /from/$(basename "$ARCHIVE") -C /to .
    echo "Done."
  3. gpanders created this gist Oct 23, 2019.
    30 changes: 30 additions & 0 deletions docker-backup.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,30 @@
    #!/bin/bash

    set -e

    usage() {
    echo "Usage: $(basename "$0") [-v] volume_name backup_dir"
    }

    v=""
    while getopts "hv" o; do
    case "$o" in
    h) usage; exit 0 ;;
    v) v="v" ;;
    *) usage >&2; exit 1 ;;
    esac
    done
    shift $((OPTIND-1))

    if [ $# -ne 2 ]; then
    usage >&2
    exit 1
    fi

    VOLUME="$1"
    BACKUP="$2"

    echo "Backing up $VOLUME to $BACKUP"
    mkdir -p "$BACKUP"
    docker run --rm -v "$VOLUME":/from -v "$BACKUP":/to alpine tar cz${v}f /to/"$VOLUME".tar.gz -C /from .
    echo "Done."