1. Существуют несколько возможных причин, по которым скрипт не выполняется по расписанию с помощью cron:
- Неправильно указан путь к скрипту в cron задании.
- Неправильно указан пользователь, от имени которого должен выполняться скрипт.
- Неправильно указаны права доступа к файлам или каталогам, с которыми работает скрипт.
- В скрипте возникла ошибка, из-за которой он не может выполниться.
- Проблемы с самим cron сервисом.
2. Для того чтобы изменить задание cron для запуска скрипта, который выполняется успешно от пользователя postgres и создает бэкапы PostgreSQL, необходимо сначала отредактировать cron задание. Например:
```
sudo crontab -u postgres -e
```
После этой команды откроется редактор vim с заданиями cron пользователя postgres. Добавьте новую строку с указанием пути к вашему скрипту:
```
0 0 * * * /путь/к/вашему/скрипту/бэкапа.sh
```
Здесь "0 0 * * *" означает, что скрипт будет выполняться каждый день в полночь. Измените это время по своему усмотрению.
Сохраните изменения и закройте редактор.
Теперь скрипт будет запускаться по расписанию от пользователя postgres. При этом убедитесь, что у скрипта правильные права доступа, чтобы он мог работать с файлами и каталогами, необходимыми для создания бэкапов.