Last active
February 7, 2024 10:21
-
-
Save yuhr123/bddf3801a58cdbe47fb65e5c1f1d6644 to your computer and use it in GitHub Desktop.
导出并打包 Docker volume 上传到 s3 对象存储
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Docker Volume: ghost_data | |
# MariaDB Container: mariadb | |
# 定义文件名变量 | |
data_filename="ghost_data-`date +%Y-%m-%d_%H%M%S`.tar.gz" | |
db_filename="ghost_db-`date +%Y-%m-%d_%H%M%S`.sql" | |
# 通过临时创建的中间容器挂载 volume 并压缩打包成带时间的 tar.gz 文件 | |
docker run --rm \ | |
-v ghost_data:/source \ | |
-v $(pwd):/backup \ | |
alpine sh -c "cd /source && tar zcf /backup/$data_filename ." | |
# 导出 mariadb 容器中的 ghost 数据库 | |
# $MYSQL_ROOT_PASSWORD 是创建 mariadb 容器时设置的环境变量 | |
docker exec mariadb \ | |
sh -c 'exec mysqldump -uroot -p"$MYSQL_ROOT_PASSWORD" --databases ghost' > ./$db_filename | |
# 备份文件到 s3 对象存储,需提前配置好 s3cmd | |
s3cmd put ./$data_filename s3://backup/data/ && rm -f ./$data_filename | |
s3cmd put ./$db_filename s3://backup/db/ && rm -f ./$db_filename |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment