root@PostgreSQL:/home/maintainer# cat /root/backup.sh
#!/bin/bash
FILENAME='/root/psql_dblist'
PORT=5433
USERNAME='dbadmin'
SERVERNAME='localhost'
ARCHIVEDIR='/Backup'
SUFFIX=''
if [[ 'dayly' = $1 ]]
then
SUFFIX='dayly_'$(date +%u)'_'$(date +%H)
#echo $SUFFIX
#echo Ok
fi
if [[ 'monthly' = $1 ]]
then
SUFFIX='monthly_'$(date +%b)'_'$(date +%H)
fi
if [[ 'hot' = $1 ]]
then
SUFFIX='hot_'$(date +%Y-%b-%d-%H%M)
fi
if [[ $SUFFIX = '' ]]
then
echo 'Type monthly, dayly or hot as parametr'
exit
fi
#DBLIST=$(psql -U $USERNAME -p $PORT -l | awk '/psql/ { print $1 }')
DBLIST=$(psql -U $USERNAME -p $PORT -l | q -d'|' "select c1 from - where c1 <> '' and c2 <> '' and c1 not like 'template%' limit 1,10000")
echo "$DBLIST" > $FILENAME
cat ${FILENAME} | while read DBNAME;
do
mkdir -p ${ARCHIVEDIR}'/'${DBNAME};
pg_dump -d $DBNAME -h ${SERVERNAME} -p $PORT -U ${USERNAME} -w | gzip > ${ARCHIVEDIR}'/'${DBNAME}'/'${DBNAME}'_'$SUFFIX'.dump.gz';
#pg_dump -d $DBNAME -h ${SERVERNAME} -p $PORT -U ${USERNAME} -w | gzip > ${ARCHIVEDIR}'/'${DBNAME}'/'${DBNAME}'_'$(date +%Y-%b-%d-%H%M)'.dump.gz';
done