docker-compose:在 cron 作业中转储 postgres 数据库不起作用
docker-compose: dumping postgres database in a cron job not working
我写了一个脚本来从主机转储数据库:
#!/bin/bash
cd /mydir/
echo "Dumping database .."
/usr/local/bin/docker-compose exec pg-service pg_dump -U pg -d "MYDB" -f /var/lib/postgresql/dbback_ 2>&1 | tee -a /backup/backup.log
date=`date +%F_%Hh_%Mm`
mv pg_data/dbback_ /backup/dbback_$date.sql
cd /backup/
echo "compressing backup .."
tar -czvf dbback_$date.tar.gz dbback_$date.sql
rm dbback_$date.sql
/var/lib/postgresql/ 暴露在 MYDIR/pg_data/
当 运行 脚本手动完成任务时,它完美地完成了任务,但是当我为脚本创建一个 cron 作业时,它会创建一个空的 tar.gz 文件(docker-compose 命令失败)
50 22 * * * root /backup/backup.sh
有什么建议!
我使用 docker
而不是 docker-compose
并通过指定容器名称|id 解决了这个问题。
/usr/bin/docker exec -u root CONTAINER-NAME pg_dump -v -Fc -U pg -d "MY-DATABASE" -f /var/lib/postgresql/MYDB_BACKUP.dump
我写了一个脚本来从主机转储数据库:
#!/bin/bash
cd /mydir/
echo "Dumping database .."
/usr/local/bin/docker-compose exec pg-service pg_dump -U pg -d "MYDB" -f /var/lib/postgresql/dbback_ 2>&1 | tee -a /backup/backup.log
date=`date +%F_%Hh_%Mm`
mv pg_data/dbback_ /backup/dbback_$date.sql
cd /backup/
echo "compressing backup .."
tar -czvf dbback_$date.tar.gz dbback_$date.sql
rm dbback_$date.sql
/var/lib/postgresql/ 暴露在 MYDIR/pg_data/
当 运行 脚本手动完成任务时,它完美地完成了任务,但是当我为脚本创建一个 cron 作业时,它会创建一个空的 tar.gz 文件(docker-compose 命令失败)
50 22 * * * root /backup/backup.sh
有什么建议!
我使用 docker
而不是 docker-compose
并通过指定容器名称|id 解决了这个问题。
/usr/bin/docker exec -u root CONTAINER-NAME pg_dump -v -Fc -U pg -d "MY-DATABASE" -f /var/lib/postgresql/MYDB_BACKUP.dump