写一个在docker里gitlab的备份脚本 包括gitlab.rb的
时间: 2023-10-24 21:14:33 浏览: 141
定时备份docker安装的gitlab的脚本
5星 · 资源好评率100%
以下是一个简单的在 Docker 中备份 GitLab 的脚本,包括 `gitlab.rb` 配置文件:
```bash
#!/bin/bash
# 备份日期
DATE=$(date +%Y-%m-%d-%H-%M-%S)
# GitLab 容器名称
CONTAINER_NAME=gitlab
# GitLab 数据目录路径
DATA_DIR=/var/opt/gitlab
# GitLab 配置文件路径
CONFIG_FILE=/etc/gitlab/gitlab.rb
# 备份文件路径
BACKUP_DIR=/opt/gitlab/backups
BACKUP_FILE=${BACKUP_DIR}/gitlab-backup-${DATE}.tar.gz
# 创建备份目录
mkdir -p ${BACKUP_DIR}
# 备份 GitLab 数据
docker exec ${CONTAINER_NAME} gitlab-rake gitlab:backup:create
# 备份 GitLab 配置文件
docker cp ${CONTAINER_NAME}:${CONFIG_FILE} ${BACKUP_DIR}/gitlab.rb
# 压缩备份文件
tar -zcvf ${BACKUP_FILE} ${DATA_DIR}/backups ${BACKUP_DIR}/gitlab.rb
# 删除备份目录
rm -rf ${BACKUP_DIR}
# 清理旧备份文件(保留最近 7 天的备份)
find ${BACKUP_DIR} -type f -mtime +7 -exec rm {} \;
```
这个脚本将在 Docker 中执行以下操作:
1. 创建一个日期时间戳,以在备份文件名称中使用。
2. 定义 GitLab 容器的名称,数据目录和配置文件路径以及备份文件路径。
3. 创建一个备份目录,以便存储备份文件。
4. 使用 `gitlab-rake` 命令在 GitLab 容器中创建数据备份。
5. 使用 `docker cp` 命令将 GitLab 配置文件复制到备份目录中。
6. 使用 `tar` 命令压缩备份文件。
7. 删除备份目录。
8. 使用 `find` 命令清理旧备份文件(保留最近 7 天的备份)。
阅读全文