diff options
Diffstat (limited to 'databases/postgresql80-server/files/502.pgsql')
| -rw-r--r-- | databases/postgresql80-server/files/502.pgsql | 39 | 
1 files changed, 27 insertions, 12 deletions
diff --git a/databases/postgresql80-server/files/502.pgsql b/databases/postgresql80-server/files/502.pgsql index acc1afe431cf..281189a59c46 100644 --- a/databases/postgresql80-server/files/502.pgsql +++ b/databases/postgresql80-server/files/502.pgsql @@ -15,12 +15,10 @@  # Define these variables in either /etc/periodic.conf or  # /etc/periodic.conf.local to override the default values.  # -# daily_pgsql_backup_enable="YES" # do backup +# daily_pgsql_backup_enable="YES" # do backup of all databases +# daily_pgsql_backup_enable="foo bar db1 db2" # only do backup of a limited selection of databases  # daily_pgsql_vacuum_enable="YES" # do vacuum -daily_pgsql_vacuum_enable="YES" -daily_pgsql_backup_enable="NO" -  daily_pgsql_vacuum_args="-z"  daily_pgsql_pgdump_args="-b -F c"  # backupdir is relative to ~pgsql home directory unless it begins with a slash: @@ -40,32 +38,32 @@ eval backupdir=${daily_pgsql_backupdir}  rc=0 -case "$daily_pgsql_backup_enable" in -    [Yy][Ee][Ss]) - +pgsql_backup() {  	# daily_pgsql_backupdir must be writeable by user pgsql  	# ~pgsql is just that under normal circumstances,  	# but this might not be where you want the backups...  	if [ ! -d ${backupdir} ] ; then   	    echo Creating ${backupdir} -	    mkdir ${backupdir}; chmod 700 ${backupdir}; chown pgsql ${backupdir} +	    mkdir -m 700 ${backupdir}; chown pgsql ${backupdir}  	fi  	echo -	echo "PostgreSQL maintenance" +	echo "PostgreSQL backups"  	# Protect the data  	umask 077 -	dbnames=`su -l pgsql -c "umask 077; psql -q -t -A -d template1 -c SELECT\ datname\ FROM\ pg_database\ WHERE\ datname!=\'template0\'"`  	rc=$?  	now=`date "+%Y-%m-%dT%H:%M:%S"`  	file=${daily_pgsql_backupdir}/pgglobals_${now}  	su -l pgsql -c "umask 077; pg_dumpall -g | gzip -9 > ${file}.gz" -	for db in ${dbnames}; do + +	db=$1 +	while shift; do  	    echo -n " $db"  	    file=${backupdir}/pgdump_${db}_${now}  	    su -l pgsql -c "umask 077; pg_dump ${daily_pgsql_pgdump_args} -f ${file} ${db}"  	    [ $? -gt 0 ] && rc=3 +		db=$1  	done  	if [ $rc -gt 0 ]; then @@ -76,6 +74,23 @@ case "$daily_pgsql_backup_enable" in  	# cleaning up old data  	find ${backupdir} \( -name 'pgdump_*' -o -name 'pgglobals_*' \) \  	    -a -mtime +${daily_pgsql_savedays} -delete +	echo +} + +case "$daily_pgsql_backup_enable" in +    [Yy][Ee][Ss]) +	dbnames=`su -l pgsql -c "umask 077; psql -q -t -A -d template1 -c SELECT\ datname\ FROM\ pg_database\ WHERE\ datname!=\'template0\'"` +	pgsql_backup $dbnames +	;; + +	[Nn][Oo]) +	;; + +	"") +	;; + +	*) +	pgsql_backup $daily_pgsql_backup_enable  	;;  esac @@ -83,7 +98,7 @@ case "$daily_pgsql_vacuum_enable" in      [Yy][Ee][Ss])  	echo -	echo "vacuuming..." +	echo "PostgreSQL vacuum"  	su -l pgsql -c "vacuumdb -a -q ${daily_pgsql_vacuum_args}"  	if [ $? -gt 0 ]  	then  | 
