Add support for network directories.
This commit is contained in:
@ -203,6 +203,7 @@ DEFAULT_BORG_RSH='ssh -i /root/.ssh/id_ed25519-borg-backup'
|
||||
DEFAULT_DB_BACKUP_DIR="/data/backup/sql"
|
||||
|
||||
DEFAULT_BACKUP_DIRECTORIES="/etc /home /root /var/spool/cron"
|
||||
MOUNT_NETDIR=false
|
||||
|
||||
DEFAULT_KEEP_DAILY=10
|
||||
DEFAULT_KEEP_WEEKLY=5
|
||||
@ -337,6 +338,8 @@ fi
|
||||
|
||||
[[ -z "${BACKUP_DIRECTORIES}" ]] && BACKUP_DIRECTORIES="${DEFAULT_BACKUP_DIRECTORIES}"
|
||||
|
||||
[[ -n "${BACKUP_NET_DIRECTORIES}" ]] && MOUNT_NETDIR=true
|
||||
|
||||
# By default: Borg won't follow symlinks
|
||||
#
|
||||
BORG_BACKUP_DIRS=""
|
||||
@ -787,6 +790,51 @@ EOF
|
||||
fi
|
||||
|
||||
|
||||
blank_line
|
||||
|
||||
|
||||
if $MOUNT_NETDIR ; then
|
||||
|
||||
if $terminal ; then
|
||||
echo ""
|
||||
echo -e " \033[1m---\033[m"
|
||||
echo -e " \033[32mMount Network filesystems.. \033[m"
|
||||
echo -e " \033[1m---\033[m"
|
||||
fi
|
||||
|
||||
declare -i _net_dir_index=0
|
||||
MOUNTED_NET_DIRECTORIES=""
|
||||
|
||||
for _net_dir in ${BACKUP_NET_DIRECTORIES} ; do
|
||||
|
||||
echononl "Mount network directory '${_net_dir}'.."
|
||||
|
||||
if ! $(df -h 2> /dev/null | grep -q ${_net_dir} 2>/dev/null) ; then
|
||||
|
||||
cat <<EOF >> ${BORG_LOG_FILE}
|
||||
mount "${_net_dir}" > /dev/null 2> ${log_file}
|
||||
EOF
|
||||
|
||||
mount "${_net_dir}" > /dev/null 2> ${log_file}
|
||||
|
||||
if [[ $? -eq 0 ]];then
|
||||
echo_ok
|
||||
if [[ ${_net_dir_index} -lt 1 ]] ; then
|
||||
MOUNTED_NET_DIRECTORIES="${_net_dir}"
|
||||
else
|
||||
MOUNTED_NET_DIRECTORIES="${MOUNTED_NET_DIRECTORIES} ${_net_dir}"
|
||||
fi
|
||||
(( _net_dir_index++ ))
|
||||
else
|
||||
echo_failed
|
||||
error "$(cat ${log_file})"
|
||||
fi
|
||||
else
|
||||
echo_skipped
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
blank_line
|
||||
|
||||
if $terminal ; then
|
||||
@ -797,6 +845,11 @@ if $terminal ; then
|
||||
echo ""
|
||||
fi
|
||||
|
||||
|
||||
blank_line
|
||||
|
||||
|
||||
|
||||
echononl "Create borg backup.."
|
||||
|
||||
cat << EOF >> ${BORG_LOG_FILE}
|
||||
@ -823,7 +876,7 @@ borg2 \\
|
||||
--exclude '**/sessions/*' \\
|
||||
--exclude '**/*.20[2-3][0-9]-[0-1][0-9]*' \\
|
||||
${ARCHIVE_NAME} \\
|
||||
${BORG_BACKUP_DIRS} \\
|
||||
${BORG_BACKUP_DIRS} ${BACKUP_NET_DIRECTORIES} \\
|
||||
${DB_BACKUP_DIR}
|
||||
EOF
|
||||
|
||||
@ -851,7 +904,7 @@ borg2 \
|
||||
--exclude '**/sessions/*' \
|
||||
--exclude '**/*.20[2-3][0-9]-[0-1][0-9]*' \
|
||||
${ARCHIVE_NAME} \
|
||||
${BORG_BACKUP_DIRS} \
|
||||
${BORG_BACKUP_DIRS} ${BACKUP_NET_DIRECTORIES} \
|
||||
${DB_BACKUP_DIR} \
|
||||
> ${log_file} 2>&1
|
||||
|
||||
@ -957,6 +1010,39 @@ if [[ -n "${DB_TYPE}" ]] && [[ ! "${DB_TYPE,,}" = "none" ]]; then
|
||||
|
||||
fi
|
||||
|
||||
blank_line
|
||||
|
||||
|
||||
if ${MOUNT_NETDIR} && [[ -n ${MOUNTED_NET_DIRECTORIES} ]] ; then
|
||||
|
||||
if $terminal ; then
|
||||
echo ""
|
||||
echo -e " \033[1m---\033[m"
|
||||
echo -e " \033[32mUnount Network filesystems.. \033[m"
|
||||
echo -e " \033[1m---\033[m"
|
||||
fi
|
||||
|
||||
for _net_dir in ${MOUNTED_NET_DIRECTORIES} ; do
|
||||
|
||||
echononl "Unmount network directory '${_net_dir}'.."
|
||||
|
||||
|
||||
cat <<EOF >> ${BORG_LOG_FILE}
|
||||
umount "${_net_dir}" > /dev/null 2> ${log_file}
|
||||
EOF
|
||||
|
||||
umount "${_net_dir}" > /dev/null 2> ${log_file}
|
||||
|
||||
if [[ $? -eq 0 ]];then
|
||||
echo_ok
|
||||
else
|
||||
echo_failed
|
||||
error "$(cat ${log_file})"
|
||||
fi
|
||||
|
||||
done
|
||||
fi
|
||||
|
||||
|
||||
|
||||
# Duration of backup
|
||||
|
@ -189,6 +189,21 @@
|
||||
#BACKUP_DIRECTORIES="/etc /home /root /var/spool/cron"
|
||||
|
||||
|
||||
# BACKUP_NET_DIRECTORIES
|
||||
#
|
||||
# Defaults to:
|
||||
#
|
||||
# BACKUP_NET_DIRECTORIES=""
|
||||
#
|
||||
# - Blank separated list of net directories -
|
||||
#
|
||||
# !! Note !!
|
||||
#
|
||||
# every net directoty
|
||||
#
|
||||
#BACKUP_NET_DIRECTORIES=""
|
||||
|
||||
|
||||
# KEEP_DAILY
|
||||
#
|
||||
# Number of daily archives to keep
|
||||
|
Reference in New Issue
Block a user