Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagetext
pg_dump <параметры>-options <имя базы> > <файл для сохранения копии> 

Где:

-options - параметры, с которыми должна выполняться утилита.

<имя базы> - название базы, которую необходимо сохранить.

<файл для сохранения копии> - название файла копии.


В простейшем случае достаточно указать имя базы данных, которую в дальнейшем нужно будет восстановить. Резервная копия создается следующей командой:

...

Ключ -U определяет пользователя, а -W обязывает требует ввести пароль.


Чтобы сэкономить место на диске, можно сразу же сжимать дамп:

...

Для настройки работы данного скрипта по расписанию нужно настроить планировщик crontab:

Code Block
languagetext
# crontab -e 3 0 * * * /etc/scripts/pgsql_dump.sh # postgres pg dump

...

Более подробное описание работы и параметров утилиты pg_dump см. по ссылке.

Утилита pg_dumpall

...

Более подробное описание работы и параметров утилиты pg_dump dumpall см. по ссылке.

Резервное копирование файлов

...

Code Block
languagebash
rsync -avzhHl /path/of/source/folder /path/to/destination/folder

Заданные параметры:

-a - режим архивирования, который включает рекурсивное копирование, сохранение прав доступа, временных меток и т.д.
-v - уровень подробности вывода (verbose), позволяет видеть подробную информацию о процессе копирования.
-z - сжатие данных во время передачи.
-h - вывод размеров файлов в удобном для чтения формате (human-readable).
-H - сохранение жестких ссылок.
-l - сохранение символических ссылок.

...

Автоматическая синхронизация папок выполняется штатным способом — планировщиком заданий (cron).  Создадим скрипт, который будет копировать файлы на удаленный узел:

Code Block
languagebash
!/bin/sh

RSYNC=/usr/bin/rsync

...


SSH=/usr/bin/ssh

...


KEY=/root/.ssh/id_rsa #Путь к ssh ключу для подключения к удаленному узлу
RUSER=root #Имя пользователя под которым будет происходить подключение к узлу
RHOST=192.168.56.1 #Адрес удаленного узла
RPATH=/remote/dir #Каталог, в который будут скопированы файлы
LPATH=/local/dir #Каталог, из которого будут скопированы файлы

$RSYNC -az -e "$SSH -i $KEY" $LPATH $RUSER@$RHOST:$RPATH

...


Настройка планировщика crontab:

Code Block
languagetext
crontab -e 0 22 * * * /root/scripts/rsync_to_cron.sh

Данная команда добавляет задание в cron, которое запускает скрипт /root/scripts/rsync_to_cron.sh и будет выполняться каждый день в 22:00. 


Более подробное описание работы и параметров утилиты pg_dump см. по ссылке.