Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: pg_dump в cron - как правильно реализовать?  (Прочитано 2143 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн garett

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Всем добрый день!  :) Хочу посоветоваться - вот есть Ubuntu 16.04.3, на ней собран PostgreSql 9.6.5. Теперь нужно настроить автоматическое резервное копирование - решил попробовать pg_dump:

su - postgres
Password: вбиваю пароль postgres'a
pg_dump db_actual > /backup/Wednesday/db_actual.sql

Есть каталог /backup, там уже выставлены права postgres:postgres рекурсивно. Все вроде бы работает. А как теперь засунуть всё это корректно в cron? Я так понимаю, это все нужно ведь выполнять исключительно от имени postgres? Как оформить скрипт - подскажите, плиз.

ТС не появлялся на Форуме более полугода по состоянию на 09/09/2019 (последняя явка: 31/01/2018). Модератором раздела принято решение закрыть тему.
--zg_nico
« Последнее редактирование: 09 Сентябрь 2019, 19:14:35 от zg_nico »

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2078
  • Lubuntu 16.04 LTS
    • Просмотр профиля
Re: pg_dump в cron - как правильно реализовать?
« Ответ #1 : 10 Январь 2018, 17:55:05 »
Как оформить скрипт - подскажите, плиз.

Какой скрипт? У тебя же уже есть скрипт, который ты говоришь работает?
Теперь нужно его запускать периодически от имени postgres.


Оффлайн garett

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: pg_dump в cron - как правильно реализовать?
« Ответ #2 : 10 Январь 2018, 18:01:10 »
Ну мне что непонятно - то есть можно прямо вот эту строку скопировать в сrontab и вызывать, допустим, в 23:00 каждый день или же нужно создать скрипт типа pg_backup.sh, а в него включить в том числе и строку su - postgres? Ну и тогда, по идее, в конце скрипта нужно вписать exit, правильно?

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3276
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Re: pg_dump в cron - как правильно реализовать?
« Ответ #3 : 10 Январь 2018, 18:06:05 »
garett, даю подсказки:
1) в конф можна прописать\добавить пользователей базы, которые могут использовать базу и стоит ли у них запрашивать пароль и в каких случаях
2) если выполнять от рута su <username> - пароль пользователя не будет запрашиватся
3) Исходя из этого, добавляем в крон или от имени root
Код: Bash
  1. 0 0 * * * /bin/su postgres -c "pg_dump db_actual > /backup/$(date +%Y-%m-%d)/db_actual.dump"
  2.  
Или от любого пользователя, что имеет доступ к базе
Код: Bash
  1. 0 0 * * * pg_dump db_actual > /backup/$(date +%Y-%m-%d)/db_actual.dump
  2.  

Редактирование крона:
Код: Bash
  1. sudo -sH # если будем делать таки от root
  2. crontab -e
  3.  

И да, желательно в кроне писать полный путь к исполняемой программе (или правильно прописать переменную PATH)
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн garett

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: pg_dump в cron - как правильно реализовать?
« Ответ #4 : 12 Январь 2018, 17:38:48 »
Решил вот так попробовать:

00 23  * * * postgres pg_dump db_actual > /backup/Friday/db_actual.sql

Но как передать пароль юзера postgres crontab'у?
updated: вроде бы и так работает  ;D То есть пароль postgres'a и не нужен?
« Последнее редактирование: 12 Январь 2018, 17:48:27 от garett »

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3276
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Re: pg_dump в cron - как правильно реализовать?
« Ответ #5 : 12 Январь 2018, 18:34:51 »
garett, если выполняется от пользователя постгреса - то нет. А вообще это все настраивается в конфигах базы)
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

 

Страница сгенерирована за 0.107 секунд. Запросов: 22.