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