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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

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

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

Оффлайн garett

  • Автор темы
  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
Всем добрый день!  :) Хочу посоветоваться - вот есть 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

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

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


Оффлайн garett

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

Оффлайн EvangelionDeath

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

Редактирование крона:
Код: (bash) [Выделить]
sudo -sH # если будем делать таки от root
crontab -e

И да, желательно в кроне писать полный путь к исполняемой программе (или правильно прописать переменную PATH)
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн garett

  • Автор темы
  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
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

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
Re: pg_dump в cron - как правильно реализовать?
« Ответ #5 : 12 Января 2018, 18:34:51 »
garett, если выполняется от пользователя постгреса - то нет. А вообще это все настраивается в конфигах базы)
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

 

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