Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ##########################
- ## Configure ##
- ##########################
- LOCALDIR=
- DATABASE_PASSWORD=
- DATABASE_USER=
- DATABASES=(
- )
- HISTORY=3
- ###########################
- ## Main ##
- ###########################
- log() {
- echo -e "$(date "+%Y-%m-%d %T")" "$1" >> ${LOCALDIR}${DATE}.log
- }
- export PGPASSWORD=${DATABASE_PASSWORD}
- DATE=$(date +%Y-%m-%d)
- DATETIME=$(date +%Y-%m-%d_%H-%M)
- DELETEDATE=$(date --date "-$HISTORY DAY" +%Y-%m-%d)
- TEMPDIR=$(mktemp -d)/
- log "backup start"
- if [ ! -d "${LOCALDIR}" ]; then
- mkdir -p ${LOCALDIR}
- fi
- if [ ! -d "${TEMPDIR}" ]; then
- mkdir -p ${TEMPDIR}
- fi
- for database in ${DATABASES[@]}; do
- pg_dump -U postgres -d ${database} -f ${TEMPDIR}${DATETIME}_${database}.sql
- if [ $? -ne 0 ]; then
- log "databases ${database} backup failed"
- exit 1
- fi
- log "backup database ${database}"
- done
- tar -zcf ${LOCALDIR}${DATETIME}.tar.gz -C ${TEMPDIR} . --exclude .sql
- rm -rf ${TEMPDIR}
- rm -f ${LOCALDIR}${DELETEDATE}*.tar.gz
- rm -f ${LOCALDIR}${DELETEDATE}.log
- log "backup finish"
Add Comment
Please, Sign In to add comment