docker postgres backup 在作为 cron 作业运行时创建一个空文件

docker postgres backup 在作为 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

相关内容