【发布时间】:2015-10-24 07:26:39
【问题描述】:
我尝试从在 docker 容器中运行的 postgresql 数据库进行自动(每晚 4 点)备份。
#!/bin/sh
CONTAINER=`docker ps|grep name_of_container|awk '{print $1}'`
USER='postgre_user'
PASSWORD='changed'
BUDIR='/some/path/backup/'
docker run -it --link $CONTAINER:db -v $BUDIR:/backup/ -e "PGPASSWORD=$PASSWORD" pg_dump -h db -U $USER -Fc -f /backup/$(date +%Y-%m-%d-%H-%M-%S).dump
我的 crontab 看起来像这样:
0 4 * * * /path/to/script.sh
脚本在我手动执行时运行良好,它也可以从 cron 执行(我尝试 * * * * * 进行调试)。
我不知道如何让 cron 和脚本一起工作。到目前为止,我尝试过:
- 将变量写入日志文件
- 检查 crontab 的输出 (
* * * * * [...] &>cron.log) - 检查脚本中
docker exec [...] > output.log的输出
$CONTAINER 在从 cron 运行时包含正确的 docker id,cron.log 和 output.log 已创建但为空。
有什么想法吗?
【问题讨论】: