Filskiy (обсуждение | вклад) Новая страница: «=Создание резервной копии БД в ОС Windows= ==Создание резервной копии с использованием командного файла== 1. Создайте командный файл 1.1. Создайте и откройте текстовый документ. В меню файл выберите '''Сохранить как''' 300px|border| 1.2 В диалого...» |
Filskiy (обсуждение | вклад) |
||
(не показано 7 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
<div style="float: left; text-align: left; padding-right: 10px;">[[0000100105|Предыдущая страница]]</div> | |||
<div style="float: right; text-align: right; padding-left: 10px;">[[0000100107|Следующая страница]]</div> | |||
<div style="float: center; margin: 0 auto; width: 320px;">[[000010000|Вопросы по ОС Linux Astra SE, КРОС, АРМ]]</div> | |||
<div style="float: center; margin: 0 auto; width: 220px;">[[000010010|PostgreSQL в ОС Linux]]</div> | |||
---- | |||
=Создание резервной копии БД в ОС Windows= | =Создание резервной копии БД в ОС Windows= | ||
==Создание резервной копии с использованием командного файла== | ==Создание резервной копии с использованием командного файла== | ||
Строка 82: | Строка 87: | ||
<br clear="both" /> | <br clear="both" /> | ||
[[#top|В начало статьи]] | [[#top|В начало статьи]] | ||
== == | ==Добавление командного файла в планировщик заданий== | ||
1. Для автоматического запуска командного файла в нужное время, необходимо запустить Планировщик заданий (Пуск-Программы-Стандартные-Служебные-Планировщик Заданий) | |||
Или запустить планировщик заданий Windows из окна «Выполнить»: | |||
[[Изображение:Win_cmd_6.png|400px|border|]] | |||
Нажмите клавиши '''Windows + R''' на клавиатуре<br> | |||
В появившемся окне введите <code>taskschd.msc</code><br> | |||
Нажмите '''Ok''' или '''Enter''' | |||
2. Выбираем пункт «'''Создать простую задачу'''» | |||
[[Изображение:Win_cmd_7.png|700px|border|]] | |||
3. '''Вводим Имя''' задачи и нажимаем '''Далее''' | |||
[[Изображение:Win_cmd_8.png|700px|border|]] | |||
4. Выбираем '''как часто''' запускать задачу и нажимаем '''Далее''' | |||
[[Изображение:Win_cmd_9.png|700px|border|]] | |||
5. Укажите '''время''' выполнения задания. Время выполнения необходимо выбирать исходя из минимальной активности объектов и минимальной загруженности серверного компьютера.<br> | |||
Обычно это ночное время с 1.00 до 5.00 утра.<br> | |||
Укажите '''как часто''' его необходимо выполнять<br> | |||
Нажмите '''Далее''' | |||
[[Изображение:Win_cmd_10.png|700px|border|]] | |||
6. '''Выбираем действие''' для задачи и нажимаем '''Далее''' | |||
[[Изображение:Win_cmd_11.png|700px|border|]] | |||
7. '''Выберите командный файл''' резервирования созданный ранее, нажав кнопку '''Обзор''', после чего нажимаем '''Далее''' | |||
[[Изображение:Win_cmd_12.png|700px|border|]] | |||
8. '''Установите флажок''' и нажмите '''Готово''' | |||
[[Изображение:Win_cmd_13.png|700px|border|]] | |||
9. Установить флажок '''Выполнять только для зарегистрированного пользователя''' и '''Выполнять с наивысшими правами''' | |||
[[Изображение:Win_cmd_14.png|700px|border|]] | |||
10. Перейти во складку '''Условия''' и убрать галочку '''Запускать только при питании от электросети''' | |||
[[Изображение:Win_cmd_15.png|700px|border|]] | |||
11. Нажать '''ОК''' | |||
<br clear="both" /> | <br clear="both" /> | ||
[[#top|В начало статьи]] | [[#top|В начало статьи]] | ||
== == | |||
==Удаление старых резервных копий с использованием командного файла== | |||
Ежедневные бэкапы со временем занимают очень '''много пространства''' на жестком диске | |||
Можно чистить вручную, но лучше '''автоматически''' | |||
Решается этот вопрос также созданием '''bat-файла''' и задачи в планировщике заданий Windows | |||
Содержимое bat-файла такое: | |||
<code> | |||
forfiles /p "C:\Users\Nikolay Sherstnev\Desktop\Backup\Backup" /S /D -5 /C "cmd /c del /f /a /q @file" | |||
</code> - Здесь указана команда при выполнении которой будут удаляться файлы старше 5 дней | |||
В планировщике заданий можно создать задачу на '''исполнения''' этого bat-файла '''раз в неделю''' | |||
<br clear="both" /> | |||
[[#top|В начало статьи]] | |||
=Создание резервной копии БД в ОС Linux= | |||
{{Daemon smpo-server}} | |||
==Создание резервной копии с использованием скрипта== | |||
Скрипт необходимо запускать от пользователя '''postgres''' | |||
===Создание файла скрипта=== | |||
Создаем файл под root | |||
1. Создадим файл | |||
touch /etc/pgsql-backup.sh | |||
2. Откроем файл для редактирования | |||
vi /etc/pgsql-backup.sh | |||
или | |||
nano /etc/pgsql-backup.sh | |||
3. Запишем текст скрипта | |||
<syntaxhighlight lang=shell>#!/bin/bash | |||
USER=postgres | |||
PASS=postgres | |||
KEEP=14 | |||
DIR=/etc/backup | |||
PGPASSWORD=$PASS | |||
export PGPASSWORD | |||
NOW=$(date +"%Y-%m-%d") | |||
DBS="$(psql -U $USER -lt | awk '{print $1}' |grep -vE '^\||^-|^List|^Name|template[0|1]|postgres')" | |||
for db in $DBS | |||
do | |||
BACKUPS=`find $DIR -name $db.*.gz |wc -l|sed 's/\ //g'` | |||
while [ $BACKUPS -ge $KEEP ] | |||
do | |||
ls -tr1 $DIR/$db.*.gz | head -n 1 | xargs rm -f | |||
BACKUPS=`expr $BACKUPS - 1` | |||
done | |||
FILE=$DIR/$db.$NOW-$(date +"%H"-"%M") | |||
pg_dump --column-inserts --attribute-inserts -U $USER -Fc $db | gzip -c > $FILE.gz | |||
done | |||
PGPASSWORD= | |||
export PGPASSWORD | |||
exit 0 | |||
</syntaxhighlight> | |||
<code>USER=postgres</code> - Имя пользователя<br> | |||
<code>PASS=postgres</code> - Пароль для доступа к базе данных<br> | |||
<code>KEEP=14</code> - Количество бэкапов, которое требуется сохранять<br> | |||
<code>DIR=/etc/backup</code> - Каталог, куда сохранять бэкапы<br> | |||
4. Сохраним его<br> | |||
5. Дадим права на выполнение | |||
chmod +x /etc/pgsql-backup.sh | |||
6. Создадим каталог, куда будет делаться backup | |||
mkdir /etc/backup | |||
7. При выполнении скрипта будет сохраняться резервная копия схемы данных в указанный каталог | |||
===Изменим владельца для папки backup на postgres=== | |||
chown postgres /etc/backup | |||
===Запуск скрипта=== | |||
1. Заходим под postgres | |||
su postgres | |||
2. Выполняем скрипт | |||
/etc/pgsql-backup.sh | |||
После выполнения скрипта резервная копия сохранилась в папку: | |||
/etc/backup | |||
===Ошибки при выполнении скрипта=== | |||
/bin/sh^M: bad interpreter: No such file or directory | |||
/bin/sh^M: плохой интерпретатор: Нет такого файла или каталога | |||
Суть проблемы в том, что под на платформе Windows редакторы добавляют символ «возврата каретки» CR/LF. Не все редакторы под Linux виндовый перенос строки умеют отображать, но он там есть, о чем свидетельствует сообщение об ошибке. | |||
Удаляем возврат каретки с использованием tr: | |||
<syntaxhighlight lang=shell>cat name_old.sh | tr -d '\r' > name_new.sh</syntaxhighlight> | |||
<br clear="both" /> | |||
[[#top|В начало статьи]] | |||
==Добавление скрипта в планировщик cron== | |||
1. Для автоматического запуска скрипта в нужное время, необходимо запустить Планировщик cron<br> | |||
Так как данный скрипт нужно выполнять под пользователем postgres, то переключаемся на него: | |||
su postgres | |||
Чтобы создать или изменить пользовательское расписание наберите команду: | |||
crontab -e | |||
При первом запуске утилита предложит выбрать редактор, рекомендуем выбирать mcedit (требует установленного mc), либо другой редактор<br> | |||
2. Формат строк расписания имеет вид: | |||
минута час день месяц день_недели команда | |||
'''Минута''' - время в минутах от 0 до 59<br> | |||
'''Час''' - от 0 до 23<br> | |||
'''День''' - день месяца от 1 до 31<br> | |||
'''Месяц''' - от 1 до 12 либо буквенные обозначения jan - dec<br> | |||
'''День недели''' - от 0 до 6 (0 - воскресенье) или sat - sun<br> | |||
'''Команда''' - строка в формате командного интерпретатора которая будет исполнена, допускается запись типа команда1 && команда2 для запуска нескольких команд подряд. | |||
Значения минут, часов, дней можно указывать следующим образом:<br> | |||
'''Значение''' - число обозначающее дату или время, допускается подстановочный знак * допускающий полный диапазон значений<br> | |||
'''Несколько значений''' - допускается указывать несколько значений через запятую, например 2,14,22<br> | |||
'''Диапазон значений''' - указывается через дефис, например 2-10<br> | |||
'''Шаг значений''' - указывается через дробь, в знаменатель которой ставится шаг, например */3 - каждое третье значение 0, 3, 6, 9 и т.д. В качестве числителя должен быть диапазон значений либо звездочка.<br> | |||
Пример: | |||
0 8-19/2 * * 1 /etc/pgsql-backup.sh | |||
Она означает что каждый второй час с 8 до 19 (8, 10,12,14,16) по понедельникам запускать скрипт | |||
<div style="border-left:16px solid #EAA; padding-left:8px; margin:16px; max-width:1000px"> | |||
при указании периодического исполнения все даты должны быть указаны явно, '''звездочка''' обозначает полный диапазон значений, а не их отсутствие. | |||
</div> | |||
Кроме даты можно использовать ряд специальных строк: | |||
* @reboot - выполнять команду при перезагрузке | |||
* @yearly или @annually - выполнять 1 января, аналогично записи: "0 0 1 1 * " | |||
* @monthly - выполнять 1 числа каждого месяца, аналогично "0 0 1 * * " | |||
* @weekly - выполнять каждое воскресенье, равносильно "0 0 * * 0" | |||
* @daily или @midnight - ежедневно в полночь,"0 0 * * * " | |||
* @hourly - раз в час, "0 * * * * " | |||
3. Так для ежедневного исполнения нашего скрипта каждую полночь можно написать: | |||
@midnight /etc/pgsql-backup.sh | |||
4. Завершив составление расписания сохраняем файл и выходим из редактора. Пользовательское расписание будет сохранено в /var/spool/cron/crontabs под именем текущего пользователя. | |||
5. Для системных и административных задач предусмотрен файл /etc/crontab синтаксис записей в нем отличается наличием дополнительного значения - пользователя, от чьего имени будет запущено задание: | |||
минута час день месяц день_недели пользователь команда | |||
Пример такой записи: | |||
0 19 * * 1-5 root /etc/pgsql-backup.sh | |||
Согласно которой в 19:00 с понедельника по пятницу будет запускаться скрипт /etc/pgsql-backup.sh от имени пользователя root | |||
<br clear="both" /> | |||
[[#top|В начало статьи]] | |||
==Восстановление данных из резервной копии== | |||
su postgres | |||
pg_restore -d jupiter jupiter.dump | |||
pg_restore - восстановить базу данных PostgreSQL из файла архива, созданного командой pg_dump<br> | |||
Она выполняет команды, необходимые для восстановления того состояния базы данных, в котором база была сохранена.<br> | |||
Где: | |||
-d jupiter - Подключиться к базе данных имя_базы и восстановить данные непосредственно в неё. | |||
jupiter.dump - название файла из которого восстанавливаем | |||
Одной командой восстановление: | |||
zcat jupiter.gz | psql jupiter | |||
<br clear="both" /> | |||
[[#top|В начало статьи]] | |||
=Сторонние программы для создания резервной копии БД= | |||
==PostgreSQL backups== | |||
https://postgresql-backup.com/ | |||
Описание программы: | |||
https://postgresql-backup.com/thankyou/?t=i&g=fda13c8b-83d2-49a6-98ec-40204d9c23d1 | |||
<br clear="both" /> | <br clear="both" /> | ||
[[#top|В начало статьи]] | [[#top|В начало статьи]] | ||
---- | |||
<div style="float: center; margin: 0 auto; width: 220px;">[[000010010|PostgreSQL в ОС Linux]]</div> | |||
<div style="float: left; text-align: left; padding-right: 10px;">[[0000100105|Предыдущая страница]]</div> | |||
<div style="float: right; text-align: right; padding-left: 10px;">[[0000100107|Следующая страница]]</div> | |||
<div style="float: center; margin: 0 auto; width: 320px;">[[000010000|Вопросы по ОС Linux Astra SE, КРОС, АРМ]]</div> |
Текущая версия от 12:17, 8 сентября 2022
Создание резервной копии БД в ОС Windows
Создание резервной копии с использованием командного файла
1. Создайте командный файл
1.1. Создайте и откройте текстовый документ. В меню файл выберите Сохранить как
1.2 В диалоговом окне Сохранить как укажите имя файла и расширение bat (Например start_backup.bat). Нажмите Сохранить
1.3 В результате получится командный файл с расширением bat
2. Откройте файл для редактирования
3. Добавьте в командный файл следующий текст:
REM Пример создание резервной копии базы данных POSTGRESQL CLS ECHO OFF Chcp 65001 REM Установка переменных окружения SET PGBIN=C:\PostgreSQL\9.6\bin SET PGDATABASE=jupiter SET PGHOST=localhost SET PGPORT=5432 SET PGUSER=postgres SET PGPASSWORD=postgres REM Смена диска и переход в папку из которой запущен bat-файл %~d0 CD %~dp0 REM Формирование имени файла резервной копии и файла-отчета SET DATETIME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% %TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2% SET DUMPFILE=%PGDATABASE% %DATETIME%.backup SET LOGFILE=%PGDATABASE% %DATETIME%.log SET DUMPPATH="Backup\%DUMPFILE%" SET LOGPATH="Backup\%LOGFILE%" REM Создание резервной копии IF NOT EXIST Backup MD Backup CALL "%PGBIN%\pg_dump.exe" --format=custom --verbose --file=%DUMPPATH% 2>%LOGPATH% REM Анализ кода завершения IF NOT %ERRORLEVEL%==0 GOTO Error GOTO Successfull REM В случае ошибки удаляется поврежденная резервная копия и делается соответствующая запись в журнале :Error DEL %DUMPPATH% MSG * "Error. See backup.log." ECHO %DATETIME% Error backup postgresql %DUMPFILE%. See %LOGFILE%. >> backup.log GOTO End REM В случае удачного резервного копирования просто делается запись в журнал :Successfull ECHO %DATETIME% OK backup %DUMPFILE% >> backup.log GOTO End :End
SET PGBIN=C:\PostgreSQL\9.6\bin
- указывается путь к pg_dump
SET PGDATABASE=jupiter
- название базы данных
SET PGHOST=localhost
- расположение базы данных
SET PGPORT=5432
- порт для подключения к базе
SET PGUSER=postgres
- имя пользователя
SET PGPASSWORD=postgres
- пароль для данной базы данных
SET DATETIME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% %TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%
- задание имени backup (содержит имя, дату и время создания backup)
SET DUMPFILE=%PGDATABASE% %DATETIME%.backup
- расширение файла backup
SET LOGFILE=%PGDATABASE% %DATETIME%.log
- запись лога (что копировалось)
SET DUMPPATH="Backup\%DUMPFILE%"
- указывается путь, куда сохранить backup базы данных
SET LOGPATH="Backup\%LOGFILE%"
- указывается путь, куда сохранить лог файл
CALL "%PGBIN%\pg_dump.exe"
--format=custom --verbose --file=%DUMPPATH% 2>%LOGPATH% - настройка метода сжатия базы данных при backup
--format=custom
- вывести копию в архивном формате
--verbose
- включить подробный режим. pg_dump будет выводить в стандартный поток ошибок подробные комментарии к объектам, включая время начала и окончания выгрузки, а также сообщения о прогрессе выполнения
--file=%DUMPPATH% 2>%LOGPATH%
- отправить вывод в указанный файл
ECHO %DATETIME% OK backup %DUMPFILE% >> backup.log
- дописывает данные в существующий файл. Таким образом можно вести журнал с подробными сведениями о результатах резервного копирования
4. Сохраните файл
Таким образом командный файл создан и после его исполнения, будет сохраняться резервная копия схемы данных, в указанную папку
Добавление командного файла в планировщик заданий
1. Для автоматического запуска командного файла в нужное время, необходимо запустить Планировщик заданий (Пуск-Программы-Стандартные-Служебные-Планировщик Заданий)
Или запустить планировщик заданий Windows из окна «Выполнить»:
Нажмите клавиши Windows + R на клавиатуре
В появившемся окне введите taskschd.msc
Нажмите Ok или Enter
2. Выбираем пункт «Создать простую задачу»
3. Вводим Имя задачи и нажимаем Далее
4. Выбираем как часто запускать задачу и нажимаем Далее
5. Укажите время выполнения задания. Время выполнения необходимо выбирать исходя из минимальной активности объектов и минимальной загруженности серверного компьютера.
Обычно это ночное время с 1.00 до 5.00 утра.
Укажите как часто его необходимо выполнять
Нажмите Далее
6. Выбираем действие для задачи и нажимаем Далее
7. Выберите командный файл резервирования созданный ранее, нажав кнопку Обзор, после чего нажимаем Далее
8. Установите флажок и нажмите Готово
9. Установить флажок Выполнять только для зарегистрированного пользователя и Выполнять с наивысшими правами
10. Перейти во складку Условия и убрать галочку Запускать только при питании от электросети
11. Нажать ОК
Удаление старых резервных копий с использованием командного файла
Ежедневные бэкапы со временем занимают очень много пространства на жестком диске
Можно чистить вручную, но лучше автоматически
Решается этот вопрос также созданием bat-файла и задачи в планировщике заданий Windows
Содержимое bat-файла такое:
forfiles /p "C:\Users\Nikolay Sherstnev\Desktop\Backup\Backup" /S /D -5 /C "cmd /c del /f /a /q @file"
- Здесь указана команда при выполнении которой будут удаляться файлы старше 5 дней
В планировщике заданий можно создать задачу на исполнения этого bat-файла раз в неделю
В начало статьи
Создание резервной копии БД в ОС Linux
!!!ВНИМАНИЕ!!!
В случае, когда для проверки запуска PostgreSQL, был использован наш скрипт, в дальнейшем команда start/stop/restart для smpo-server будет иметь вид:
service smpo-server start/stop/restart
Создание резервной копии с использованием скрипта
Скрипт необходимо запускать от пользователя postgres
Создание файла скрипта
Создаем файл под root
1. Создадим файл
touch /etc/pgsql-backup.sh
2. Откроем файл для редактирования
vi /etc/pgsql-backup.sh
или
nano /etc/pgsql-backup.sh
3. Запишем текст скрипта
<syntaxhighlight lang=shell>#!/bin/bash USER=postgres PASS=postgres KEEP=14 DIR=/etc/backup PGPASSWORD=$PASS export PGPASSWORD NOW=$(date +"%Y-%m-%d") DBS="$(psql -U $USER -lt | awk '{print $1}' |grep -vE '^\||^-|^List|^Name|template[0|1]|postgres')" for db in $DBS do BACKUPS=`find $DIR -name $db.*.gz |wc -l|sed 's/\ //g'` while [ $BACKUPS -ge $KEEP ] do ls -tr1 $DIR/$db.*.gz | head -n 1 | xargs rm -f BACKUPS=`expr $BACKUPS - 1` done FILE=$DIR/$db.$NOW-$(date +"%H"-"%M") pg_dump --column-inserts --attribute-inserts -U $USER -Fc $db | gzip -c > $FILE.gz done PGPASSWORD= export PGPASSWORD exit 0 </syntaxhighlight>
USER=postgres
- Имя пользователя
PASS=postgres
- Пароль для доступа к базе данных
KEEP=14
- Количество бэкапов, которое требуется сохранять
DIR=/etc/backup
- Каталог, куда сохранять бэкапы
4. Сохраним его
5. Дадим права на выполнение
chmod +x /etc/pgsql-backup.sh
6. Создадим каталог, куда будет делаться backup
mkdir /etc/backup
7. При выполнении скрипта будет сохраняться резервная копия схемы данных в указанный каталог
Изменим владельца для папки backup на postgres
chown postgres /etc/backup
Запуск скрипта
1. Заходим под postgres
su postgres
2. Выполняем скрипт
/etc/pgsql-backup.sh
После выполнения скрипта резервная копия сохранилась в папку:
/etc/backup
Ошибки при выполнении скрипта
/bin/sh^M: bad interpreter: No such file or directory /bin/sh^M: плохой интерпретатор: Нет такого файла или каталога
Суть проблемы в том, что под на платформе Windows редакторы добавляют символ «возврата каретки» CR/LF. Не все редакторы под Linux виндовый перенос строки умеют отображать, но он там есть, о чем свидетельствует сообщение об ошибке.
Удаляем возврат каретки с использованием tr:
<syntaxhighlight lang=shell>cat name_old.sh | tr -d '\r' > name_new.sh</syntaxhighlight>
Добавление скрипта в планировщик cron
1. Для автоматического запуска скрипта в нужное время, необходимо запустить Планировщик cron
Так как данный скрипт нужно выполнять под пользователем postgres, то переключаемся на него:
su postgres
Чтобы создать или изменить пользовательское расписание наберите команду:
crontab -e
При первом запуске утилита предложит выбрать редактор, рекомендуем выбирать mcedit (требует установленного mc), либо другой редактор
2. Формат строк расписания имеет вид:
минута час день месяц день_недели команда
Минута - время в минутах от 0 до 59
Час - от 0 до 23
День - день месяца от 1 до 31
Месяц - от 1 до 12 либо буквенные обозначения jan - dec
День недели - от 0 до 6 (0 - воскресенье) или sat - sun
Команда - строка в формате командного интерпретатора которая будет исполнена, допускается запись типа команда1 && команда2 для запуска нескольких команд подряд.
Значения минут, часов, дней можно указывать следующим образом:
Значение - число обозначающее дату или время, допускается подстановочный знак * допускающий полный диапазон значений
Несколько значений - допускается указывать несколько значений через запятую, например 2,14,22
Диапазон значений - указывается через дефис, например 2-10
Шаг значений - указывается через дробь, в знаменатель которой ставится шаг, например */3 - каждое третье значение 0, 3, 6, 9 и т.д. В качестве числителя должен быть диапазон значений либо звездочка.
Пример:
0 8-19/2 * * 1 /etc/pgsql-backup.sh
Она означает что каждый второй час с 8 до 19 (8, 10,12,14,16) по понедельникам запускать скрипт
при указании периодического исполнения все даты должны быть указаны явно, звездочка обозначает полный диапазон значений, а не их отсутствие.
Кроме даты можно использовать ряд специальных строк:
- @reboot - выполнять команду при перезагрузке
- @yearly или @annually - выполнять 1 января, аналогично записи: "0 0 1 1 * "
- @monthly - выполнять 1 числа каждого месяца, аналогично "0 0 1 * * "
- @weekly - выполнять каждое воскресенье, равносильно "0 0 * * 0"
- @daily или @midnight - ежедневно в полночь,"0 0 * * * "
- @hourly - раз в час, "0 * * * * "
3. Так для ежедневного исполнения нашего скрипта каждую полночь можно написать:
@midnight /etc/pgsql-backup.sh
4. Завершив составление расписания сохраняем файл и выходим из редактора. Пользовательское расписание будет сохранено в /var/spool/cron/crontabs под именем текущего пользователя.
5. Для системных и административных задач предусмотрен файл /etc/crontab синтаксис записей в нем отличается наличием дополнительного значения - пользователя, от чьего имени будет запущено задание:
минута час день месяц день_недели пользователь команда
Пример такой записи:
0 19 * * 1-5 root /etc/pgsql-backup.sh
Согласно которой в 19:00 с понедельника по пятницу будет запускаться скрипт /etc/pgsql-backup.sh от имени пользователя root
Восстановление данных из резервной копии
su postgres pg_restore -d jupiter jupiter.dump
pg_restore - восстановить базу данных PostgreSQL из файла архива, созданного командой pg_dump
Она выполняет команды, необходимые для восстановления того состояния базы данных, в котором база была сохранена.
Где:
-d jupiter - Подключиться к базе данных имя_базы и восстановить данные непосредственно в неё. jupiter.dump - название файла из которого восстанавливаем
Одной командой восстановление:
zcat jupiter.gz | psql jupiter
Сторонние программы для создания резервной копии БД
PostgreSQL backups
https://postgresql-backup.com/
Описание программы:
https://postgresql-backup.com/thankyou/?t=i&g=fda13c8b-83d2-49a6-98ec-40204d9c23d1