EnderUNIX Team.


EnderUNIX İpucu

Arkadaşıma gönder , Ana Sayfa

[ PostgreSQL ]

"PgSQL için yedekleme scripti" - Cavit Keskin - (2005-09-17 10:34:33)   [2988]

Aşağıdaki scripi başıma gelen kötü bir hadiseden sonra yazmıştım. Aslında yedekleme yaparken "hangileri yedeklenecek" yerine "hangileri yedeklenmeyecek" diye sormak daha önemli. Bu script yedeklenmesini istemedikleriniz hariç bütün databaseinizi ayrı ayrı yedekliyor.

#!/bin/sh

DESTDIR=/mnt/hd/yedek/pgsql/
PSQL=/usr/local/pgsql/bin/psql
PGDUMP=/usr/local/pgsql/bin/pg_dump
GZIP=/bin/gzip
MKDIR=/bin/mkdir
CHMOD=/bin/chmod

#TARIH=$(date +%Y.%m.%d_%H%M)
TARIH=$(date +%Y.%m.%d)

echo "Yedekleme Tarihi : " $TARIH

$PSQL -A -q -t -c "select datname,datdba,encoding from pg_database order by datname" template1 -U postgres | grep '|' | tr '|' ' ' | \
grep -v '^template0 ' | grep -v '^template1 ' |grep -v '^deneme ' | grep -v '^test ' |\
while read DATABASE DBUSERID ENCODING
do
#echo $DATABASE $DBUSERNAME $ENCODING $TARIH
#FILENAME=$DATABASE.$TARIH.sql.gz

if [ ! -d $DESTDIR$TARIH ]
then
$MKDIR -p $DESTDIR$TARIH
$CHMOD 777 $DESTDIR$TARIH
fi

echo $DATABASE " yedekleniyor..."
$PGDUMP -C $DATABASE -U postgres | $GZIP > $DESTDIR$TARIH/$DATABASE.data.gz
#$CHMOD 666 $DESTDIR$TARIH/$DATABASE.data.gz
$PGDUMP -csd $DATABASE -U postgres | $GZIP > $DESTDIR$TARIH/$DATABASE.sema.gz

done

echo "Yedekleme tamamlandi."
exit 0


Arkadaşıma gönder , Ana Sayfa