...
| Code Block | ||
|---|---|---|
| ||
pg_dump <параметры>-options <имя базы> > <файл для сохранения копии> |
Где:
-options - параметры, с которыми должна выполняться утилита.
<имя базы> - название базы, которую необходимо сохранить.
<файл для сохранения копии> - название файла копии.
В простейшем случае достаточно указать имя базы данных, которую в дальнейшем нужно будет восстановить. Резервная копия создается следующей командой:
...
Ключ -U определяет пользователя, а -W обязывает требует ввести пароль.
Чтобы сэкономить место на диске, можно сразу же сжимать дамп:
...
Для настройки работы данного скрипта по расписанию нужно настроить планировщик crontab:
| Code Block | ||
|---|---|---|
| ||
# crontab -e 3 0 * * * /etc/scripts/pgsql_dump.sh # postgres pg dump |
...
Более подробное описание работы и параметров утилиты pg_dump см. по ссылке.
Утилита pg_dumpall
...
Более подробное описание работы и параметров утилиты pg_dump dumpall см. по ссылке.
Резервное копирование файлов
...
| Code Block | ||
|---|---|---|
| ||
rsync -avzhHl /path/of/source/folder /path/to/destination/folder |
Заданные параметры:
-a - режим архивирования, который включает рекурсивное копирование, сохранение прав доступа, временных меток и т.д.
-v - уровень подробности вывода (verbose), позволяет видеть подробную информацию о процессе копирования.
-z - сжатие данных во время передачи.
-h - вывод размеров файлов в удобном для чтения формате (human-readable).
-H - сохранение жестких ссылок.
-l - сохранение символических ссылок.
...
Автоматическая синхронизация папок выполняется штатным способом — планировщиком заданий (cron). Создадим скрипт, который будет копировать файлы на удаленный узел:
| Code Block | ||
|---|---|---|
| ||
!/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 | ||
|---|---|---|
| ||
crontab -e 0 22 * * * /root/scripts/rsync_to_cron.sh |
Данная команда добавляет задание в cron, которое запускает скрипт /root/scripts/rsync_to_cron.sh и будет выполняться каждый день в 22:00.
Более подробное описание работы и параметров утилиты pg_dump см. по ссылке.