SHA256
add support for encryption keys
This commit is contained in:
@@ -3,5 +3,6 @@ PBS_USER='backup@pam:token-name'
|
|||||||
PBS_PASSWORD='XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
|
PBS_PASSWORD='XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
|
||||||
PBS_DATASTORE='backup'
|
PBS_DATASTORE='backup'
|
||||||
PBS_NAMESPACE='MyBackups'
|
PBS_NAMESPACE='MyBackups'
|
||||||
|
#ENCRYPTION_KEYFILE='/etc/pbc/backup.key'
|
||||||
|
|
||||||
BACKUP=('root.pxar:/' 'data.pxar:/mnt/data')
|
BACKUP=('root.pxar:/' 'data.pxar:/mnt/data')
|
||||||
|
|||||||
@@ -53,17 +53,17 @@ function pbc-version() {
|
|||||||
return $rc
|
return $rc
|
||||||
}
|
}
|
||||||
|
|
||||||
function pbc-backup() { "$PBC" backup --ns "$PBS_NAMESPACE" "${BACKUP[@]}" "$@"; }
|
function pbc-backup() { "$PBC" backup "${PBC_ARGS[@]}" "${KEY_ARGS[@]}" "${BACKUP[@]}" "$@"; }
|
||||||
|
|
||||||
function pbc-list() { "$PBC" list --ns "$PBS_NAMESPACE" "$@"; }
|
function pbc-list() { "$PBC" list "${PBC_ARGS[@]}" "$@"; }
|
||||||
|
|
||||||
function pbc-snapshot-list() { "$PBC" snapshot list --ns "$PBS_NAMESPACE" "$@"; }
|
function pbc-snapshot-list() { "$PBC" snapshot list "${PBC_ARGS[@]}" "$@"; }
|
||||||
|
|
||||||
function pbc-files() { "$PBC" files --ns "$PBS_NAMESPACE" "$@"; }
|
function pbc-files() { "$PBC" files "${PBC_ARGS[@]}" "$@"; }
|
||||||
|
|
||||||
function pbc-catalog-shell() { "$PBC" catalog shell --ns "$PBS_NAMESPACE" "$@"; }
|
function pbc-catalog-shell() { "$PBC" catalog shell "${PBC_ARGS[@]}" "${KEY_ARGS[@]}" "$@"; }
|
||||||
|
|
||||||
function pbc-mount() { "$PBC" mount --ns "$PBS_NAMESPACE" "$@"; }
|
function pbc-mount() { "$PBC" mount "${PBC_ARGS[@]}" "${KEY_ARGS[@]}" "$@"; }
|
||||||
|
|
||||||
function get_group_names() {
|
function get_group_names() {
|
||||||
pbc-list --output-format json | jq -r '.[] | "\(.["backup-type"])/\(.["backup-id"])"'
|
pbc-list --output-format json | jq -r '.[] | "\(.["backup-type"])/\(.["backup-id"])"'
|
||||||
@@ -307,7 +307,19 @@ else
|
|||||||
[ ! -f "$PBC" ] && echo "Error: $PBC: no such file" >&2 && exit 200
|
[ ! -f "$PBC" ] && echo "Error: $PBC: no such file" >&2 && exit 200
|
||||||
[ ! -x "$PBC" ] && echo "Error: $PBC: not executable" >&2 && exit 200
|
[ ! -x "$PBC" ] && echo "Error: $PBC: not executable" >&2 && exit 200
|
||||||
! command -v jq >/dev/null && echo "Error: jq executable not found!" >&2 && exit 200
|
! command -v jq >/dev/null && echo "Error: jq executable not found!" >&2 && exit 200
|
||||||
|
if [ -n "$ENCRYPTION_KEYFILE" ]; then
|
||||||
|
[ ! -f "$ENCRYPTION_KEYFILE" ] && echo "Error: $ENCRYPTION_KEYFILE: no such file" >&2 && exit 203
|
||||||
|
[ ! -r "$ENCRYPTION_KEYFILE" ] && echo "Error: $ENCRYPTION_KEYFILE: not readable" >&2 && exit 203
|
||||||
|
perms=$(stat -c '%a' "$ENCRYPTION_KEYFILE")
|
||||||
|
(( 8#$perms & 0007 )) && echo "Warning: $ENCRYPTION_KEYFILE is readable by others!" >&2
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
PBC_ARGS=()
|
||||||
|
KEY_ARGS=()
|
||||||
|
|
||||||
|
[ -n "$PBS_NAMESPACE" ] && PBC_ARGS+=('--ns' "$PBS_NAMESPACE")
|
||||||
|
[ -n "$ENCRYPTION_KEYFILE" ] && KEY_ARGS+=('--keyfile' "$ENCRYPTION_KEYFILE")
|
||||||
|
|
||||||
export PBS_REPOSITORY="$PBS_USER@$PBS_SERVER:$PBS_DATASTORE"
|
export PBS_REPOSITORY="$PBS_USER@$PBS_SERVER:$PBS_DATASTORE"
|
||||||
export PBS_PASSWORD="$PBS_PASSWORD"
|
export PBS_PASSWORD="$PBS_PASSWORD"
|
||||||
|
|||||||
Reference in New Issue
Block a user