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