Gitlab 备份到本地
#!/bin/bash # GitLab 容器名称或ID gitlab_container_name_or_id="gitlab" # 宿主机上的备份目录 backup_directory_on_host="/home/backups/gitlab" # 检查宿主机上的备份目录是否存在,如果不存在则创建 if [ ! -d "$backup_directory_on_host" ]; then mkdir -p "$backup_directory_on_host" echo "备份目录 $backup_directory_on_host 已创建。" fi # 进入 GitLab 容器执行备份命令 # 注意:这里假设你已经在容器内部设置了正确的执行权限 docker exec -it "$gitlab_container_name_or_id" gitlab-rake gitlab:backup:create # 等待备份完成(这里是一个简单的等待,实际可能需要更复杂的逻辑来检测备份是否完成) # 注意:这里只是一个示例,你可能需要根据你的实际情况来修改或移除这个等待 sleep 10 # 查找最新的备份文件(这里假设文件名以 _gitlab_backup.tar 结尾,并按时间排序) latest_backup_file=$(docker exec "$gitlab_container_name_or_id" ls -t /var/opt/gitlab/backups/ | grep _gitlab_backup.tar | head -n 1) # 将最新的备份文件从容器复制到宿主机 docker cp "$gitlab_container_name_or_id:/var/opt/gitlab/backups/$latest_backup_file" "$backup_directory_on_host/" # 检查复制是否成功 if [ $? -eq 0 ]; then echo "备份文件 $latest_backup_file 已成功复制到 $backup_directory_on_host" else echo "复制备份文件时出错。" fi # 脚本结束 echo "备份完成。"
或者进入到容器执行 gitlab-rake gitlab:backup:create 这个是执行备份的命令,如果有挂在到本地 可以直接执行命令。如果没有挂在到本地 就需要上面的这个脚本了
标签:备份,gitlab,备份文件,host,定期,directory,backup From: https://www.cnblogs.com/JIKes/p/18252955