| 
					
				 | 
			
			
				@@ -24,7 +24,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # {{{ Variables 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Email Address to send errors to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Email Address to send errors to. If empty errors are displayed on stdout. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 MAILADDR="root" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # By default, on Debian systems (and maybe others), only postgres user is 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -49,10 +49,13 @@ USERNAME="postgres" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # replace hostname with the value of ${DBHOST}, dbuser with the value of 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # ${USERNAME} and dbpass with the password. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Host name (or IP address) of PostgreSQL server 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Host name (or IP address) of PostgreSQL server. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Use 'localhost' for socket connection or '127.0.0.1' to force TCP connection 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 DBHOST="localhost" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Port of PostgreSQL server (only used if ${DBHOST} != localhost). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Port of PostgreSQL server. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# It is also used if ${DBHOST} is localhost (socket connection) as socket name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# contains port 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 DBPORT="5432" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # List of database(s) names(s) to backup If you would like to backup all 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -169,7 +172,9 @@ if [ -w "/dev/shm" ]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     LOG_DIR="/dev/shm" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-LOG_FILE="${LOG_DIR}/${NAME}_${DBHOST//\//_}-$(date '+%Y-%m-%d_%Hh%Mm').log" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+LOG_PREFIX="${LOG_DIR}/${NAME}_${DBHOST//\//_}-$(date '+%Y-%m-%d_%Hh%Mm')" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+LOG_FILE="${LOG_PREFIX}.log" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+LOG_REPORT="${LOG_PREFIX}.report" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # Debug mode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 DEBUG="no" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -200,9 +205,9 @@ if [[ "${HOSTNAME}" != *.* ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     HOSTNAME="$(hostname --fqdn)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-HOST="${HOSTNAME}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-if [ "${DBHOST}" != "localhost" ]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    HOST="${HOSTNAME}:${DBPORT}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+HOST="${DBHOST}:${DBPORT}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if [ "${DBHOST}" = "localhost" ]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    HOST="${HOSTNAME}:${DBPORT} (socket)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 CONN_ARGS=() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -299,8 +304,9 @@ compression () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # {{{ pgdb_init() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 pgdb_init () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CONN_ARGS=(--port "${DBPORT}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if [ "${DBHOST}" != "localhost" ]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        CONN_ARGS=(--host "${DBHOST}" --port "${DBPORT}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CONN_ARGS+=(--host "${DBHOST}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if [ -n "${USERNAME}" ]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         CONN_ARGS+=(--username "${USERNAME}") 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -639,7 +645,13 @@ exec 2>&7 7>&-      # Restore stdout and close file descriptor #7. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # }}} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # {{{ Reporting 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-if [ "${DEBUG}" = "no" ] && grep -q '^err|' "${LOG_FILE}" ; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if grep -q '^err|' "${LOG_FILE}"; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    rc=1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    rc=0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if [ "${DEBUG}" = "no" ] && [ ${rc} = 1 ]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         printf "*Errors/Warnings* (below) reported during backup on *%s*:\n\n" "${HOST}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         grep '^err|' "${LOG_FILE}" | cut -d '|' -f 3- | \ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -656,24 +668,24 @@ if [ "${DEBUG}" = "no" ] && grep -q '^err|' "${LOG_FILE}" ; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         done 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         printf "\nFor more information, try to run %s in debug mode, see \`%s -h\`\n" "${NAME}" "$(basename "$0")" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ) | mail -s "${NAME} issues on ${HOSTNAME}" "${MAILADDR}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ) > "${LOG_REPORT}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if [ -n "${MAILADDR}" ]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mail -s "${NAME} issues on ${HOSTNAME}" "${MAILADDR}" < "${LOG_REPORT}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        cat "${LOG_REPORT}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # }}} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # {{{ Cleanup and exit() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-if [ -s "${LOGERR}" ]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    rc=1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    rc=0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # Cleanup GnuPG home dir 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if [ -d "${GPG_HOMEDIR}" ]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     rm -rf "${GPG_HOMEDIR}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # Clean up log files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-rm -f "${LOG_FILE}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+rm -f "${LOG_FILE}" "${LOG_REPORT}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 exit ${rc} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # }}} 
			 |