Debian:在 Docker 上使用 cron 任务
Debian : Using a cron task on Docker
我在我的服务器 (debian 7.5) 上使用 docker 和 docker compose。
我有 1 个 mysql 容器和一个用于 2 个应用程序的 postgresql 容器。
当我想创建我的数据库的备份时(例如从我的 mysql 容器中创建数据库 "mydb"),我会这样做:
docker exec -it <my_container_id> mysqldump --opt mydb > "/backup/mydb$(date +%Y%m%dà%H%M).sql"
效果很好。备份保存在我的本地服务器中。
问题是我想每天创建这个任务。所以我在 /etc/cron.daily/ 中创建了一个文件 "backup.sh"。 (然后我做了 chmod +x backup.sh)。
但问题是,cron 根本不起作用。我可以在日志中看到文件已执行,但我的备份文件夹中没有任何内容。
有人有问题吗?
非常感谢
Cron 不会设置 PATH
,除非您指定它。
尝试在您的 shell 脚本中使用 docker 绝对路径(最有可能是 /usr/bin/docker
)。
我在我的服务器 (debian 7.5) 上使用 docker 和 docker compose。
我有 1 个 mysql 容器和一个用于 2 个应用程序的 postgresql 容器。
当我想创建我的数据库的备份时(例如从我的 mysql 容器中创建数据库 "mydb"),我会这样做:
docker exec -it <my_container_id> mysqldump --opt mydb > "/backup/mydb$(date +%Y%m%dà%H%M).sql"
效果很好。备份保存在我的本地服务器中。
问题是我想每天创建这个任务。所以我在 /etc/cron.daily/ 中创建了一个文件 "backup.sh"。 (然后我做了 chmod +x backup.sh)。
但问题是,cron 根本不起作用。我可以在日志中看到文件已执行,但我的备份文件夹中没有任何内容。
有人有问题吗?
非常感谢
Cron 不会设置 PATH
,除非您指定它。
尝试在您的 shell 脚本中使用 docker 绝对路径(最有可能是 /usr/bin/docker
)。