gitlab 定期备份
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 这个是执行备份的命令,如果有挂在到本地 可以直接执行命令。如果没有挂在到本地 就需要上面的这个脚本了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了