【发布时间】:2020-11-18 09:20:34
【问题描述】:
我正在使用 docker-compose 类型的场景。我想每晚为 partkeepr 备份数据库。我可以通过在容器中执行docker exec -it docker-partkeer_database_1 bash 并运行mysqldump 命令来获得一个bash shell,但我无法将它作为docker exec 类型的函数成功运行。
我运行docker exec -it docker-partkeepr_database_1 bash -c mysqldump --databases partkeepr -upartkeepr -pUSERPASSWORD > /var/lib/mysql/backup/partkeeprsql.$(date +%Y-%m-%d-%H.%M.%S).sql。
当我已经在容器中使用 bash shell 但不在容器之外时,最后的日期部分工作得很好。我可以在没有日期部分的情况下运行所写的命令,但我需要日期,所以我可以有多个备份。
-bash: /var/lib/mysql/backup/partkeeprsql.$(date +%Y-%m-%d-%H.%M.%S).sql: No such file or directory 的系统错误。
有什么想法吗?
【问题讨论】:
-
您在主机上使用什么操作系统?如果你只是在主机上运行
date +%Y-%m-%d-%H.%M.%S,你会得到什么?请注意,>之后的任何内容都不会在容器内运行,而是在主机上运行,因此为了使其正常运行,date必须是主机上的工作命令,而不仅仅是容器