vi /mnt/usbdisk1/postgres/sh/post_bkup.sh

#!/bin/sh
d=`date +'%u'`
pg_dumpall -g > "/mnt/usbdisk1/postgres/dump/dumpall_${d}"
pg_dump -Fc testdb -f "/mnt/usbdisk1/postgres/dump/dump_${d}_C"
d=`date +'%Y%m%d%H%M'`
psql -c "select pg_start_backup('${d}')"
cd /var/lib/pgsql/9.3/
tar zcf /mnt/usbdisk1/postgres/base/${d}_backup.gz data
psql -c "select pg_stop_backup()"
ls -t -1 /mnt/usbdisk1/postgres/arch/*.backup | xargs -i basename {} >> FILE_LIST.TXT
i10=0
s10=""
for FILE_NAME in `cat FILE_LIST.TXT`
do
    if [ "$FILE_NAME" = "" ]
    then
        break
    fi
    i10=`expr $i10 + 1`
    if [ "$i10" = "2" ]
    then
       s10=$FILE_NAME
    fi
    if [ $i10 -gt 3 ]
    then
       rm "/mnt/usbdisk1/postgres/arch/${FILE_NAME}"
    fi
done
rm FILE_LIST.TXT
if [ "$s10" != "" ]
then
  /usr/pgsql-9.3/bin/pg_archivecleanup /mnt/usbdisk1/postgres/arch/ "$s10"
fi
ls -r -1 /mnt/usbdisk1/postgres/base/*backup.gz | xargs -i basename {} >> FILE_LIST.TXT
i10=0
for FILE_NAME in `cat FILE_LIST.TXT`
do
    if [ "$FILE_NAME" = "" ]
    then
        break
    fi
    i10=`expr $i10 + 1`
    if [ $i10 -gt 2 ]
    then
       rm "/mnt/usbdisk1/postgres/base/${FILE_NAME}"
    fi
done
rm FILE_LIST.TXT

Back