Резервное копирование 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