|
@@ -544,6 +544,33 @@ db_dump () {
|
|
}
|
|
}
|
|
# }}}
|
|
# }}}
|
|
|
|
|
|
|
|
+# {{{ db_purge()
|
|
|
|
+db_purge() {
|
|
|
|
+ local dumpdir db when count line
|
|
|
|
+
|
|
|
|
+ dumpdir="${1}"
|
|
|
|
+ db="${2}"
|
|
|
|
+ when="${3}"
|
|
|
|
+ count="${4}"
|
|
|
|
+
|
|
|
|
+ # Since version >= 2.0 the dump filename no longer contains the week number
|
|
|
|
+ # or the abbreviated month name so in order to be sure to remove the older
|
|
|
|
+ # dumps we need to sort the filename on the datetime part (YYYY-MM-DD_HHhMMm)
|
|
|
|
+
|
|
|
|
+ log_info "Rotating ${count} ${when} backups..."
|
|
|
|
+ log_debug "Looking for '${db}_*' in '${dumpdir}/${when}/${db}'"
|
|
|
|
+ find "${dumpdir}/${when}/${db}/" -name "${db}_*" | \
|
|
|
|
+ sed -E 's/(^.+([0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}h[0-9]{2}m).*$)/\2 \1/' | \
|
|
|
|
+ sort -r | \
|
|
|
|
+ sed -E -n 's/\S+ //p' | \
|
|
|
|
+ tail -n "+${count}" | \
|
|
|
|
+ xargs -L1 rm -fv | \
|
|
|
|
+ while IFS= read -r line ; do
|
|
|
|
+ log_info "${line}"
|
|
|
|
+ done
|
|
|
|
+}
|
|
|
|
+# }}}
|
|
|
|
+
|
|
# {{{ dump()
|
|
# {{{ dump()
|
|
dump() {
|
|
dump() {
|
|
local db_name dump_file comp_ext
|
|
local db_name dump_file comp_ext
|
|
@@ -640,30 +667,15 @@ setup() {
|
|
}
|
|
}
|
|
# }}}
|
|
# }}}
|
|
|
|
|
|
-# {{{ cleanup()
|
|
|
|
|
|
+# {{{ cleanup()
|
|
cleanup() {
|
|
cleanup() {
|
|
- local dumpdir db when count line
|
|
|
|
-
|
|
|
|
- dumpdir="${1}"
|
|
|
|
- db="${2}"
|
|
|
|
- when="${3}"
|
|
|
|
- count="${4}"
|
|
|
|
-
|
|
|
|
- # Since version >= 2.0 the dump filename no longer contains the week number
|
|
|
|
- # or the abbreviated month name so in order to be sure to remove the older
|
|
|
|
- # dumps we need to sort the filename on the datetime part (YYYY-MM-DD_HHhMMm)
|
|
|
|
|
|
+ # Cleanup GnuPG home dir
|
|
|
|
+ if [ -d "${GPG_HOMEDIR}" ]; then
|
|
|
|
+ rm -rf "${GPG_HOMEDIR}"
|
|
|
|
+ fi
|
|
|
|
|
|
- log_info "Rotating ${count} ${when} backups..."
|
|
|
|
- log_debug "Looking for '${db}_*' in '${dumpdir}/${when}/${db}'"
|
|
|
|
- find "${dumpdir}/${when}/${db}/" -name "${db}_*" | \
|
|
|
|
- sed -E 's/(^.+([0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}h[0-9]{2}m).*$)/\2 \1/' | \
|
|
|
|
- sort -r | \
|
|
|
|
- sed -E -n 's/\S+ //p' | \
|
|
|
|
- tail -n "+${count}" | \
|
|
|
|
- xargs -L1 rm -fv | \
|
|
|
|
- while IFS= read -r line ; do
|
|
|
|
- log_info "${line}"
|
|
|
|
- done
|
|
|
|
|
|
+ # Clean up log files
|
|
|
|
+ rm -f "${LOG_FILE}" "${LOG_REPORT}"
|
|
}
|
|
}
|
|
# }}}
|
|
# }}}
|
|
|
|
|
|
@@ -685,18 +697,6 @@ cleanup_io() {
|
|
}
|
|
}
|
|
# }}}
|
|
# }}}
|
|
|
|
|
|
-# {{{ cleanup()
|
|
|
|
-cleanup() {
|
|
|
|
- # Cleanup GnuPG home dir
|
|
|
|
- if [ -d "${GPG_HOMEDIR}" ]; then
|
|
|
|
- rm -rf "${GPG_HOMEDIR}"
|
|
|
|
- fi
|
|
|
|
-
|
|
|
|
- # Clean up log files
|
|
|
|
- rm -f "${LOG_FILE}" "${LOG_REPORT}"
|
|
|
|
-}
|
|
|
|
-# }}}
|
|
|
|
-
|
|
|
|
# {{{ usage()
|
|
# {{{ usage()
|
|
usage() {
|
|
usage() {
|
|
cat <<EOH
|
|
cat <<EOH
|
|
@@ -847,7 +847,7 @@ for db_enc in ${DBNAMES} ; do
|
|
mkdir -p "${backupdbdir}"
|
|
mkdir -p "${backupdbdir}"
|
|
fi
|
|
fi
|
|
|
|
|
|
- cleanup "${BACKUPDIR}" "${db_enc}" "${period}" "${rotate}"
|
|
|
|
|
|
+ db_purge "${BACKUPDIR}" "${db_enc}" "${period}" "${rotate}"
|
|
|
|
|
|
backupfile="${backupdbdir}/${db_enc}_${DATE}.${EXT}"
|
|
backupfile="${backupdbdir}/${db_enc}_${DATE}.${EXT}"
|
|
dump "${db}" "${backupfile}"
|
|
dump "${db}" "${backupfile}"
|