docker postgres backup создает пустой файл при запуске в качестве задания cron

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

В моем кронтабе есть задание: * * * * * * /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
задан 14 July 2021 в 15:48
1 ответ

для команды в файле sh: docker exec -it dbContainer pg_dump -U имя пользователя -d имя_базы_данных > /home/user/backups/testingBackup.sql

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

0
ответ дан 26 August 2021 в 19:35

Теги

Похожие вопросы