Change backup handling.
This commit is contained in:
@@ -290,6 +290,7 @@ if $LOGGING ; then
|
||||
fi
|
||||
|
||||
[[ -n "$DEFAULT_ZONES_DECLARATION_FILE" ]] || DEFAULT_ZONES_DECLARATION_FILE="${CONF_FILE_DIR}/named.conf.local"
|
||||
[[ -n "$ZONE_FILE_MASTER_DIR" ]] || ZONE_FILE_MASTER_DIR="${CONF_FILE_DIR}/master"
|
||||
|
||||
|
||||
echo ""
|
||||
@@ -354,6 +355,7 @@ else # if $LOGGING
|
||||
fi
|
||||
|
||||
[[ -n "$ZONES_DECLARATION_FILE" ]] || ZONES_DECLARATION_FILE="${CONF_FILE_DIR}/named.conf.local"
|
||||
[[ -n "$ZONE_FILE_MASTER_DIR" ]] || ZONE_FILE_MASTER_DIR="${CONF_FILE_DIR}/master"
|
||||
|
||||
fi
|
||||
|
||||
@@ -376,6 +378,18 @@ else
|
||||
echo_ok
|
||||
fi
|
||||
|
||||
if [[ -d "$ZONE_FILE_MASTER_DIR" ]] ; then
|
||||
echononl " Backup directory '${ZONE_FILE_MASTER_DIR}'.."
|
||||
cp -a "${ZONE_FILE_MASTER_DIR}" "${ZONE_FILE_MASTER_DIR}.${backup_date}" > $log_file 2>&1
|
||||
if [[ $? -eq 0 ]]; then
|
||||
echo_ok
|
||||
else
|
||||
echo_failed
|
||||
fatal "$(cat $log_file)"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
declare -i line_number=0
|
||||
|
||||
_found=false
|
||||
@@ -479,6 +493,18 @@ if [[ -n "$key_directory" ]]; then
|
||||
|
||||
$LOGGING && echo ""
|
||||
|
||||
if [[ "$(dirname ${key_directory})" != "$CONF_FILE_DIR" ]]; then
|
||||
backup_key_dir="$(dirname ${key_directory})"
|
||||
echononl " Backup directory '${backup_key_dir}'.."
|
||||
cp -a "${backup_key_dir}" "${backup_key_dir}.${backup_date}" > $log_file 2>&1
|
||||
if [[ $? -eq 0 ]]; then
|
||||
echo_ok
|
||||
else
|
||||
echo_failed
|
||||
fatal "$(cat $log_file)"
|
||||
fi
|
||||
fi
|
||||
|
||||
_dir="$(dirname ${key_directory})/DELETED"
|
||||
echononl " Create directory '${_dir}'.."
|
||||
if [[ ! -d "${_dir}" ]] ; then
|
||||
@@ -530,6 +556,54 @@ if [[ -n "$key_directory" ]]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if [[ -f "${ZONES_DECLARATION_FILE}.$backup_date" ]]; then
|
||||
diff "$ZONES_DECLARATION_FILE" "${ZONES_DECLARATION_FILE}.$backup_date" > /dev/null 2>&1
|
||||
if [[ $? -eq 0 ]]; then
|
||||
info "Zone declaration file $(basename $ZONES_DECLARATION_FILE) has not changed.\n\t Removing previously created backup now."
|
||||
echononl "\tDelete '${ZONES_DECLARATION_FILE}.$backup_date'.."
|
||||
rm "${ZONES_DECLARATION_FILE}.$backup_date" > $log_file 2>&1
|
||||
if [[ $? -eq 0 ]]; then
|
||||
echo_ok
|
||||
else
|
||||
echo_failed
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if [[ -d "${ZONE_FILE_MASTER_DIR}.${backup_date}" ]] ; then
|
||||
diff -Nur "${ZONE_FILE_MASTER_DIR}" "${ZONE_FILE_MASTER_DIR}.${backup_date}" > /dev/null 2>&1
|
||||
if [[ $? -eq 0 ]]; then
|
||||
info "No zone file has changed.\n\t Removing previously created backup."
|
||||
echononl "\tDelete '${ZONE_FILE_MASTER_DIR}.${backup_date}'.."
|
||||
rm -rf "${ZONE_FILE_MASTER_DIR}.${backup_date}" > $log_file 2>&1
|
||||
if [[ $? -eq 0 ]]; then
|
||||
echo_ok
|
||||
else
|
||||
echo_failed
|
||||
error "$(cat $log_file)"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -d "${backup_key_dir}.${backup_date}" ]] ; then
|
||||
diff -Nur "${backup_key_dir}" "${backup_key_dir}.${backup_date}" > /dev/null 2>&1
|
||||
if [[ $? -eq 0 ]]; then
|
||||
info "Key directory '${backup_key_dir}' has not changed.\n\t Removing previously created backup now."
|
||||
echononl "\tDelete '${backup_key_dir}.${backup_date}'.."
|
||||
rm -rf "${backup_key_dir}.${backup_date}" > $log_file 2>&1
|
||||
if [[ $? -eq 0 ]]; then
|
||||
echo_ok
|
||||
else
|
||||
echo_failed
|
||||
error "$(cat $log_file)"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
$LOGGING && echo ""
|
||||
|
||||
echononl " Reeload bind configuration"
|
||||
|
||||
Reference in New Issue
Block a user