вторник, 6 сентября 2011 г.

1C Postgresql Backup

Так из того, что до сих пор не было сделано, это бэкап. Это плохо(
Доделал, чем с вами и делюсь)
За основу был взят скрипт отсюда, спасибо за простой и не напряжный вариант.
Единственно, пришлось немного поправить скрипты и пути, были небольшие опечатки.
файл crontab для пользователя postgres:
crontab -e -u postgres

0 8-20/2 * * * /var/lib/pgsql/backups/archpgbase /var/lib/pgsql/backups hourly gpi
0 2 * * * /var/lib/pgsql/backups/archpgbase /var/lib/pgsql/backups daily gpi
0 4 1 * * /var/lib/pgsql/backups/archpgbase /var/lib/pgsql/backups monthly gpi

файл скрипта.

bash-4.1$ cat /var/lib/pgsql/backups/archpgbase
#!/bin/sh
arcdir=$1
bindir=/usr/bin
PASS=237511
USAGE= "Usage: arcdb hourly|daily|mountly [SQLhost]"
if [ "$4" = "" ]; then
SQLhost='127.0.0.1'
fi
echo "SQLhost: $SQLhost"
if ! [ -d $1 ]; then
echo $USAGE
exit 1
fi
echo "Target dir: $1"
if [ "$3" = "" ]; then
echo $USAGE
exit 1
fi
echo "Database: $3"
case $2 in
hourly)
find $arcdir/$2/$3/ -type f -ctime 1 -delete
;;
daily)
find $arcdir/$2/$3/ -type f -ctime 31 -delete
;;
monthly)
find $arcdir/$2/$3/ -type f -ctime 365 -delete
;;
*)
echo $USAGE
exit 1
;;
esac
if ! [ -e $arcdir/$2/$3 ]; then
mkdir $arcdir/$2/$3
fi
export PGPASSWORD=123456
$bindir/pg_dump -h $SQLhost -U postgres -c $3 | gzip >>$arcdir/$2/$3/`date +%y%m%d%H%M`.gz

создаем директории в /var/lib/pgsql/backups/
monthly
daily
hourly

отдаем пользователю постгресса во владениее папки
chown -R postgres /var/lib/pgsql/backups

делаем скрипт исполняемым

chmod +x /var/lib/pgsql/archpgbase

все. все просто и понятно)


Комментариев нет:

Отправить комментарий