@@ -588,6 +588,23 @@ backup_mysql() {
588588}
589589
590590backup_pgsql() {
591+ backup_pgsql_globals() {
592+ prepare_dbbackup
593+ backup_job_filename=pgsql_globals_${backup_job_db_host,,}_${now}.sql
594+ compression
595+ pre_dbbackup "globals"
596+ print_notice "Dumping PostgresSQL globals: with 'pg_dumpall -g' ${compression_string}"
597+ run_as_user ${play_fair} pg_dumpall -h "${backup_job_db_host}" -U "${backup_job_db_user}" -p "${backup_job_db_port}" -g ${backup_job_extra_opts} ${backup_job_extra_dump_opts} | ${compress_cmd} | run_as_user tee "${TEMP_PATH}"/"${backup_job_filename}" > /dev/null
598+ exit_code=$?
599+ check_exit_code "${backup_job_filename}"
600+ timer backup finish
601+ file_encryption
602+ generate_checksum
603+ move_dbbackup
604+ check_exit_code move "${backup_job_filename}"
605+ post_dbbackup "globals"
606+ }
607+
591608 export PGPASSWORD=${backup_job_db_pass}
592609 if [ -n "${backup_job_db_auth}" ] ; then
593610 authdb=${backup_job_db_auth}
@@ -603,9 +620,11 @@ backup_pgsql() {
603620 write_log debug "Excluding '${db_exclude}' from ALL DB_NAME backups"
604621 db_names=$(echo "$db_names" | sed "/${db_exclude}/d" )
605622 done
623+ _postgres_backup_globals=true
606624 fi
607625 else
608626 db_names=$(echo "${backup_job_db_name}" | tr ',' '\n')
627+ _postgres_backup_globals=false
609628 fi
610629
611630 write_log debug "Databases Found: $(echo ${db_names} | xargs | tr ' ' ',')"
@@ -628,20 +647,7 @@ backup_pgsql() {
628647 check_exit_code move "${backup_job_filename}"
629648 post_dbbackup "${db}"
630649 done
631- prepare_dbbackup
632- backup_job_filename=pgsql_globals_${backup_job_db_host,,}_${now}.sql
633- compression
634- pre_dbbackup "globals"
635- print_notice "Dumping PostgresSQL globals: with 'pg_dumpall -g' ${compression_string}"
636- run_as_user ${play_fair} pg_dumpall -h "${backup_job_db_host}" -U "${backup_job_db_user}" -p "${backup_job_db_port}" -g ${backup_job_extra_opts} ${backup_job_extra_dump_opts} | ${compress_cmd} | run_as_user tee "${TEMP_PATH}"/"${backup_job_filename}" > /dev/null
637- exit_code=$?
638- check_exit_code "${backup_job_filename}"
639- timer backup finish
640- file_encryption
641- generate_checksum
642- move_dbbackup
643- check_exit_code move "${backup_job_filename}"
644- post_dbbackup "globals"
650+ if var_true "${_postgres_backup_globals}" ; then backup_pgsql_globals; fi
645651 else
646652 write_log debug "Not splitting database dumps into their own files"
647653 prepare_dbbackup
@@ -667,6 +673,7 @@ backup_pgsql() {
667673 move_dbbackup
668674 check_exit_code move "${backup_job_filename}"
669675 post_dbbackup all
676+ if var_true "${_postgres_backup_globals}" ; then backup_pgsql_globals; fi
670677 fi
671678}
672679
@@ -1407,7 +1414,7 @@ post_dbbackup() {
14071414 source /assets/defaults/03-monitoring
14081415 write_log notice "Sending Backup Statistics to Zabbix"
14091416 silent zabbix_sender -c -c "${ZABBIX_CONFIG_PATH}"/"${ZABBIX_CONFIG_FILE}" -k dbbackup.backup -o '[{"{#NAME}":"'${backup_job_db_host}.${backup_job_db_name}'"}]'
1410- cat <<EOF | silent run_as_user zabbix_sender -c "${ZABBIX_CONFIG_PATH}"/"${ZABBIX_CONFIG_FILE}" -i -
1417+ cat <<EOF > /tmp/zabbix_output
14111418- dbbackup.backup.size.[${backup_job_db_host}.${backup_job_db_name}] "${dbbackup_size}"
14121419- dbbackup.backup.datetime.[${backup_job_db_host}.${backup_job_db_name}] "${dbbackup_date}"
14131420- dbbackup.backup.status.[${backup_job_db_host}.${backup_job_db_name}] "${exit_code}"
@@ -1416,6 +1423,17 @@ post_dbbackup() {
14161423${zabbix_encrypt_time}
14171424${zabbix_checksum_time}
14181425EOF
1426+
1427+ cat <<EOF | run_as_user zabbix_sender -c "${ZABBIX_CONFIG_PATH}"/"${ZABBIX_CONFIG_FILE}" -i -
1428+ - dbbackup.backup.size.[${backup_job_db_host}.${backup_job_db_name}] "${dbbackup_size}"
1429+ - dbbackup.backup.datetime.[${backup_job_db_host}.${backup_job_db_name}] "${dbbackup_date}"
1430+ - dbbackup.backup.status.[${backup_job_db_host}.${backup_job_db_name}] "${exit_code}"
1431+ - dbbackup.backup.duration.[${backup_job_db_host}.${backup_job_db_name}] "$((dbbackup_finish_time-dbbackup_start_time))"
1432+ - dbbackup.backup.filename.[${backup_job_db_host}.${backup_job_db_name}] "${backup_job_filename}"
1433+ ${zabbix_encrypt_time}
1434+ ${zabbix_checksum_time}
1435+ EOF
1436+
14191437 if [ "$?" != "0" ] ; then write_log error "Error sending statistics, consider disabling with 'CONTAINER_ENABLE_MONITORING=FALSE'" ; fi
14201438 fi
14211439
0 commit comments