Вот так авто бекап сделал,работает исправно.
У меня все на одной машине,по этому
host all postgres 127.0.0.1/32 trust
Если на разных,то так лучше не надо,не безопасно,скрипт правте так, чтоб сначала входил под пользователем postgre , а после выполнения копирования выходил.
Надеюсь понятно написал,это я скопировал свою шпаргалку напоминалку.
Правим /etc/crontab для авто выполнения скрипта авто загрузки
Добавляем
00 20 * * * root /var/lib/pgsql/backups/backup1c.sh
в этом случае в 00 часов 20 мин бекап будет,можно и по дням недели
это пример моего crontab
/etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
00 20 * * * root /var/lib/pgsql/backups/backup1c.sh
#
Обязательно после ввода строки,жмем ентер,а то не будет работать!!!!
Правим конфиг Чтоб не требовал пароль на бекап.
nano /var/lib/pgsql/data/pg_hba.conf
host all postgres 127.0.0.1/32 trust
Директория скрипта авто бекапа.
nano /var/lib/pgsql/backups/backup1c.sh
Скрипт авто бекапа.
#!/bin/bash
# Скрипт запуска резервного копирования БД 1С (храним 5 последних копий)
BACKUPDIR=/home/backup1c # Директория хранения бэкапов
DATENAME=`date +%d.%m.%Y-%H.%M` # Дата/Время в имени файла бэкапа
LOGFILE=/var/log/Backup1C.log # Хранилище лог-файлов
X=1 # Счетчик файлов
FILEMASK="*.backup" # маска файлов
KEEP=4 # сколько файлов (бэкапов) надо оставлять
cd $BACKUPDIR
echo Удаление старых резервных копий базы данных...
for i in `ls -t $BACKUPDIR/$FILEMASK`
do
if [ $X -le $KEEP ]
then
((X++))
continue
fi
rm $i
done
echo Начато резервное копирование базы данных...
pg_dump -Fc -Z1 -h 127.0.0.1 -U postgres > $DATENAME.backup base
echo "Резервное копирование БД УТП завершено: $DATENAME" > $LOGFILE
echo Резервное копирование БД УТП завершено...
####LAST LINE. DO NOT REMOVE####
Делаем скрипт исполняемым
$ chmod +x /путь к скрипту
Много мудрить не стал,пошел простым путем.
Вроде что то изменил на сервере правда,у меня 30 копий хранится и еще что то менял в этой строке скрипта
pg_dump -Fc -Z1 -h 127.0.0.1 -U postgres > $DATENAME.backup base
не помню точно что , но и так работать будет,без сжатия почти.
Может кому пригодится.
Спасибо, но, пожалуйста, не забывайте пользоваться тегами BBCode. yars.