Add script borg2-extract-archiv.sh. borg2-mount-archiv.sh: print out commands used to mount the repositories archive.
This commit is contained in:
@ -267,6 +267,149 @@ export BORG_RSH
|
||||
#
|
||||
BORG_RELOCATED_REPO_ACCESS_IS_OK=yes
|
||||
export BORG_RELOCATED_REPO_ACCESS_IS_OK
|
||||
blank_line
|
||||
|
||||
|
||||
LIST_OF_FILES_OR_DIRECTORIES=
|
||||
echo -e "\033[32m--\033[m"
|
||||
echo ""
|
||||
echo "Specify a space-separated list of files or directories to be part of the mounted filesystem."
|
||||
echo ""
|
||||
echo -e " Type \"\033[33mall\033[m\" or leave emty to mount the full archive"
|
||||
echo ""
|
||||
echononl "List of files or directories: "
|
||||
read LIST_OF_FILES_OR_DIRECTORIES
|
||||
if [[ "X${LIST_OF_FILES_OR_DIRECTORIES}" = "X" ]] || [[ "$(trim ${LIST_OF_FILES_OR_DIRECTORIES,,})" = 'all' ]] ; then
|
||||
LIST_OF_FILES_OR_DIRECTORIES=""
|
||||
fi
|
||||
|
||||
blank_line
|
||||
|
||||
echo -e "\033[32m--\033[m"
|
||||
echo ""
|
||||
|
||||
# List Borg Backups
|
||||
#
|
||||
(
|
||||
source ${working_dir}/borg2-list-backups.sh
|
||||
)
|
||||
|
||||
echo ""
|
||||
echo -e " \033[33m--------------------------------------------\033[m"
|
||||
echo " Which Borg Archiv shoul be mounted?"
|
||||
echo ""
|
||||
echo -e " \033[33mNote:\033[m it is an read-only fuse filesystem!"
|
||||
echo ""
|
||||
echo " Give a Borg Backup ID from above list"
|
||||
echo ""
|
||||
echo -n " Borg Backup ID: "
|
||||
read BORG_BACKUP_ID
|
||||
echo -e " \033[33m--------------------------------------------\033[m"
|
||||
echo ""
|
||||
|
||||
|
||||
blank_line
|
||||
|
||||
|
||||
echo ""
|
||||
echo ""
|
||||
echo -e "\t\033[32mStart script for (readonly) mounting repository archiv '${BORG_BACKUP_ID}'..\033[m"
|
||||
echo ""
|
||||
echo -e "\tBORG_HOST......................: ${BORG_HOST}"
|
||||
echo -e "\tBORG_REPO......................: ${BORG_REPO}"
|
||||
echo ""
|
||||
echo -e "\tBORG_PASSPHRASE................: ${BORG_PASSPHRASE}"
|
||||
echo ""
|
||||
echo -e "\tSSH_USER ......................: ${SSH_USER}"
|
||||
echo -e "\tSSH_PORT.......................: ${SSH_PORT}"
|
||||
echo -e "\tBORG_RSH.......................: ${BORG_RSH}"
|
||||
echo ""
|
||||
echo -e "\tBORG_URL.......................: ${BORG_URL}"
|
||||
echo ""
|
||||
echo -e "\tBORG_FUSE_MOUNT_DIR............: ${BORG_FUSE_MOUNT_DIR}"
|
||||
if [[ -z "${LIST_OF_FILES_OR_DIRECTORIES}" ]]; then
|
||||
echo -e "\tLIST_OF_FILES_OR_DIRECTORIES...: \033[33mMount the full archive\033[m"
|
||||
else
|
||||
echo -e "\tLIST_OF_FILES_OR_DIRECTORIES...: ${LIST_OF_FILES_OR_DIRECTORIES}"
|
||||
fi
|
||||
echo ""
|
||||
echo ""
|
||||
|
||||
declare -i _CHOOSE
|
||||
echo -e " Ho to continue?"
|
||||
echo ""
|
||||
echo -e " \033[1m[1] Mount files from repository $(basename "${BORG_REPO}") archive ${BORG_BACKUP_ID}\033[m"
|
||||
echo -e " [2] Only print out the commands for mounting files/folders"
|
||||
echo -e " [3] Exit borg2 mount script."
|
||||
echo ""
|
||||
echo " Type a number or press <RETURN> to choose highlighted value"
|
||||
echo ""
|
||||
echononl "Eingabe: "
|
||||
while [[ -z "${_CHOOSE}" ]]; do
|
||||
read OPTION
|
||||
[[ -z "$OPTION" ]] && OPTION=1
|
||||
case $OPTION in
|
||||
1) _CHOOSE=1
|
||||
;;
|
||||
2) _CHOOSE=2
|
||||
;;
|
||||
3) _CHOOSE=3
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo -e "\tFalsche Eingabe ! [1/2/3] or type <RETURN> for the highlited default"
|
||||
echo ""
|
||||
echononl "Eingabe: "
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ ${_CHOOSE} -gt 2 ]] ; then
|
||||
echo ""
|
||||
clean_up 0
|
||||
elif [[ ${_CHOOSE} -gt 1 ]] ; then
|
||||
|
||||
_MOUNT_DIR_BACKUP_HOST="${BORG_FUSE_MOUNT_DIR}/$(basename "${BORG_REPO}")"
|
||||
|
||||
echo -e "\033[40m\033[37m
|
||||
-----------------------------------------------------------------------------------------
|
||||
|
||||
export BORG_PASSPHRASE=\"${BORG_PASSPHRASE}\"
|
||||
export BORG_REPO=\"${BORG_REPO}\"
|
||||
export BORG_RSH=\"${BORG_RSH}\"
|
||||
export BORG_RELOCATED_REPO_ACCESS_IS_OK=yes
|
||||
|
||||
mkdir -p \"${BORG_FUSE_MOUNT_DIR}\"
|
||||
|
||||
borg2 --remote-path borg2 --repo ${BORG_URL} mount -a ${BORG_BACKUP_ID} ${BORG_FUSE_MOUNT_DIR} ${LIST_OF_FILES_OR_DIRECTORIES}
|
||||
|
||||
|
||||
On Backup Host type:
|
||||
====================
|
||||
|
||||
export BORG_PASSPHRASE=\"${BORG_PASSPHRASE}\"
|
||||
export BORG_REPO=\"${BORG_REPO}\"
|
||||
export BORG_RELOCATED_REPO_ACCESS_IS_OK=yes
|
||||
|
||||
mkdir -p \"${_MOUNT_DIR_BACKUP_HOST}\"
|
||||
|
||||
borg2 --remote-path borg2 --repo ${BORG_REPO} mount -a ${BORG_BACKUP_ID} ${_MOUNT_DIR_BACKUP_HOST} ${LIST_OF_FILES_OR_DIRECTORIES}
|
||||
|
||||
|
||||
You can find the mounted fuse archive at;
|
||||
|
||||
${_MOUNT_DIR_BACKUP_HOST}/${BORG_BACKUP_ID}
|
||||
|
||||
|
||||
In Order to unmount repository archive type:
|
||||
|
||||
umount ${_MOUNT_DIR_BACKUP_HOST}
|
||||
|
||||
-----------------------------------------------------------------------------------------
|
||||
\033[m\n"
|
||||
|
||||
clean_up 0
|
||||
fi
|
||||
|
||||
echononl "Create Restore Directory '${BORG_FUSE_MOUNT_DIR}'."
|
||||
if [ ! -d "${BORG_FUSE_MOUNT_DIR}" ]; then
|
||||
@ -286,29 +429,51 @@ fi
|
||||
|
||||
blank_line
|
||||
|
||||
_MOUNT_DIR_BACKUP_HOST="${BORG_FUSE_MOUNT_DIR}/$(basename "${BORG_REPO}")"
|
||||
|
||||
# List Borg Backups
|
||||
#
|
||||
(
|
||||
source ${working_dir}/borg2-list-backups.sh
|
||||
)
|
||||
echo -e "\033[40m\033[37m
|
||||
-----------------------------------------------------------------------------------------
|
||||
|
||||
echo ""
|
||||
echo -e " \033[33m--------------------------------------------\033[m"
|
||||
echo " Which Borg Archiv shoul be mounted?"
|
||||
echo ""
|
||||
echo -e " \033[33mNote:\033[m it is an read-only fuse filesystem!"
|
||||
echo ""
|
||||
echo " Give a Borg Backup ID from above list"
|
||||
echo ""
|
||||
echo -n " Borg Backup ID:: "
|
||||
read BORG_BACKUP_ID
|
||||
echo -e " \033[33m--------------------------------------------\033[m"
|
||||
echo ""
|
||||
export BORG_PASSPHRASE=\"${BORG_PASSPHRASE}\"
|
||||
export BORG_REPO=\"${BORG_REPO}\"
|
||||
export BORG_RSH=\"${BORG_RSH}\"
|
||||
export BORG_RELOCATED_REPO_ACCESS_IS_OK=yes
|
||||
|
||||
echononl "Mount archive '$(basename "${BORG_REPO}")::${BORG_BACKUP_ID}' to '${BORG_FUSE_MOUNT_DIR}'.."
|
||||
mkdir -p \"${BORG_FUSE_MOUNT_DIR}\"
|
||||
|
||||
borg2 --remote-path borg2 --repo ${BORG_URL} mount -a ${BORG_BACKUP_ID} ${BORG_FUSE_MOUNT_DIR} >> "${log_file}" 2>&1
|
||||
borg2 --remote-path borg2 --repo ${BORG_URL} mount -a ${BORG_BACKUP_ID} ${BORG_FUSE_MOUNT_DIR} ${LIST_OF_FILES_OR_DIRECTORIES}
|
||||
|
||||
|
||||
On Backup Host type:
|
||||
====================
|
||||
|
||||
export BORG_PASSPHRASE=\"${BORG_PASSPHRASE}\"
|
||||
export BORG_REPO=\"${BORG_REPO}\"
|
||||
export BORG_RELOCATED_REPO_ACCESS_IS_OK=yes
|
||||
|
||||
mkdir -p \"${_MOUNT_DIR_BACKUP_HOST}\"
|
||||
|
||||
borg2 --remote-path borg2 --repo ${BORG_REPO} mount -a ${BORG_BACKUP_ID} ${_MOUNT_DIR_BACKUP_HOST} ${LIST_OF_FILES_OR_DIRECTORIES}
|
||||
|
||||
|
||||
You can find the mounted fuse archive at;
|
||||
|
||||
${_MOUNT_DIR_BACKUP_HOST}/${BORG_BACKUP_ID}
|
||||
|
||||
|
||||
In Order to unmount repository archive type:
|
||||
|
||||
umount ${_MOUNT_DIR_BACKUP_HOST}
|
||||
|
||||
-----------------------------------------------------------------------------------------
|
||||
\033[m\n"
|
||||
|
||||
blank_line
|
||||
|
||||
echo "Mount archive '$(basename "${BORG_REPO}")::${BORG_BACKUP_ID}' to"
|
||||
echononl " '${BORG_FUSE_MOUNT_DIR}'.."
|
||||
|
||||
borg2 --remote-path borg2 --repo ${BORG_URL} mount -a ${BORG_BACKUP_ID} ${BORG_FUSE_MOUNT_DIR} ${LIST_OF_FILES_OR_DIRECTORIES} > "${log_file}" 2>&1
|
||||
|
||||
if [[ $? -gt 0 ]] ; then
|
||||
echo_failed
|
||||
@ -317,4 +482,11 @@ else
|
||||
echo_ok
|
||||
fi
|
||||
|
||||
|
||||
blank_line
|
||||
|
||||
info "You can find the readonly mounted files from repository archive '${BORG_BACKUP_ID}' at directory:
|
||||
|
||||
\033[1m${BORG_FUSE_MOUNT_DIR}/${BORG_BACKUP_ID}\033[m"
|
||||
|
||||
clean_up 0
|
||||
|
Reference in New Issue
Block a user