Skip to content

Latest commit

 

History

History
22 lines (20 loc) · 2.41 KB

README.md

File metadata and controls

22 lines (20 loc) · 2.41 KB

backup_postgresql

Bash-скрипт резервного копирования базы данных PostgreSQL, который:

  • Соединяется с сервером PostgreSQL под указанными login/password.
  • Делает снимок состояния базы DB_BASE в файл BACKUP_PATH/BACKUP_PREFIX.гггг.мм.дд_ччммсс.tar.gz.
  • Проверяет, что число копий базы данных в BACKUP_PATH >= BACKUP_COUNT, а в случае, > BACKUP_COUNT удаляет лишнее начиная с самых старых.
  • Обрабатывает ошибки нехватки свободного места и ошибки во время выполнения резервной копии, а также явно указывает тип ошибки, время её возникновения.
  • Ведёт журнал сообщений BACKUP_PATH/BACKUP_PREFIX.гггг.мм.дд_ччммсс.log и дублирует сообщения в stdout: дата-время начала и окончания процедуры резервного копирования, вышеозначенные сообщения об ошибках, системные сообщения об ошибках, или сообщения об ошибках со стороны сервера и время их возникновения.

Запуск скрипта:
bash backup-sql.sh /путь/к/файлу/backup.config
где /путь/к/файлу/backup.config : путь к конфигурационному файлу скрипта, в котором содержится:

  • DB_HOST - FQDN или IP серевера с базой данных PostgreSQL
  • DB_USER - имя пользователя, под которым нужно подключаться к серверу
  • DB_PASS - пароль
  • DB_BASE - база данных, которую следует копировать
  • BACKUP_PATH - локальный путь к каталогу, в котором хранятся резервные копии
  • BACKUP_COUNT - количество хранимых резервных копий

Пример команды для настройки автоматического запуска скрипта каждый день в 01:05 кроме сб и вск (строчка для crontab):
05 01 * * 1-5 /home/pavel/backup-sql.sh /home/pavel/backup.config