Ти справді, дуже не хочеш цього робити. Postgres - це не операційна система, це сервер баз даних. Навіть якщо база даних підтримує виконання запланованих завдань, зловживати такою базою даних не дуже добре.
Якщо ви стурбовані тим, що не хочете встановлювати пароль та інше, це легко вирішити. Налаштуйте локальне з'єднання для сокетів Unix, використовуючи замість цього довіру або автентифікацію ідентифікації , запустіть cronjob як цей користувач.
У своїй конфігурації вікна зазвичай postgres налаштовує системного користувача postgres
для запуску db-сервера, і цей системний користувач, як правило, вже попередньо налаштований, тому він може підключитися до локального сервера, використовуючи автентифікацію довіри при підключенні через локальний сокет Unix. Ви можете запустити cronjob як користувач системи postgres, підключитися до локального сокета і потім переключити роль, якщо ви не хочете, щоб ваша збережена процедура запускалася з привілеєм суперпользователя.
У налаштуваннях за замовчуванням ви можете просто зробити це:
$ sudo -u postgres crontab -e
У редакторі додайте до запису crontab так:
0 0 * * * bash /path/to/run_stored_procedure.sh
а у вашому /path/to/run_stored_procedure.sh файлі ви просто використовуєте psql для виклику процедури зберігання
#!/usr/bin/env bash
psql my_db_name <<END
SET ROLE limited_user;
SELECT my_stored_proc();
SELECT 1 FROM my_stored_proc();
END