Резервное копирование Docker Postgres создает пустой файл при запуске как задание cron

Я пытаюсь создать cronjob, который каждую ночь создает резервные копии БД.

В моем crontab есть задание:* * * * * /home/user/scripts/backup.sh(настройте его на включение каждую минуту для тестирования)

В backup.sh у меня есть:

      docker exec -it dbContainer pg_dump -U username -d dbName > /home/user/backups/testingBackup.sql

Файл всегда пуст:

      -rw-rw-r--  1 user user    0 Jul 14 08:39 testingBackup.sql

Однако, если я запущу файл самостоятельно и наберу команду/home/user/scripts/backup.sh, оно не пусто:

      -rw-rw-r--  1 user user 30813 Jul 14 08:45 testingBackup.sql

Я чувствую, что имеет смысл что-то не так с разрешениями, но все делается от «пользователя». Я ничего не делал из-под root, например, sudo crontab... sudo /home/user/backups/testingBackup.sql и т. д.

Я не понимаю, почему в одном сценарии полученный файл пуст, а в другом — нет.

Спасибо за любую помощь

1 ответ

для команды, которая у меня есть в файле sh: docker exec -it dbContainer pg_dump -U username -d dbName > /home/user/backups/testingBackup.sql

Он работает в интерактивном режиме (-it). Если я удалю это, все будет работать (поэтому команда: docker exec dbContainer pg_dump -U username -d dbName > /home/user/backups/testingBackup.sql

Другие вопросы по тегам