| 1234567891011121314151617181920212223242526272829303132333435363738 |
- #!/bin/bash
- [ $# -ne 5 ] && exit 6
- PGDUMP=`which pg_dumpall`
- BACKUP_DIR=${1}
- USE_SU=${2}
- USER=${3}
- HOST=${4}
- DB_NAME=${5}
- PG_OPTS1=
- PG_OPTS2=
- [ -n "${USER}" ] && PG_OPTS1="-U ${USER}"
- [ -n "${HOST}" ] && PG_OPTS2="-h ${HOST}"
- [ ! -e "${BACKUP_DIR}/${DB_NAME}" ] && mkdir -p "${BACKUP_DIR}/${DB_NAME}"
- chown -R postgres:root "${BACKUP_DIR}"
- chmod 750 -R "${BACKUP_DIR}"
- find "${BACKUP_DIR}" -type f -exec chmod 640 {} \;
- if [ "${USE_SU}" == "no" ]; then
- $PGDUMP ${PG_OPTS1} ${PG_OPTS2} -f "${BACKUP_DIR}/${DB_NAME}/${DB_NAME}.sql"
- ret=$?
- else
- su postgres -c "$PGDUMP ${PG_OPTS1} ${PG_OPTS2} -f \"${BACKUP_DIR}/${DB_NAME}/${DB_NAME}.sql\""
- ret=$?
- fi
- if [ ${ret} -eq 0 ]; then
- FNAME="${BACKUP_DIR}-${DB_NAME}.tgz"
- tar c -z -f $FNAME "${BACKUP_DIR}/${DB_NAME}/${DB_NAME}.sql" >/dev/null 2>&1
- ret=$?
- fi
- rm -rf "${BACKUP_DIR}"
- exit ${ret}
|