首页 > 其他分享 >gitlab 定期备份

gitlab 定期备份

时间:2024-06-17 18:24:19浏览次数:27  
标签:备份 gitlab 备份文件 host 定期 directory backup

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

相关文章

  • Tita:定期360评估系统优于年度绩效考核
    与大多数组织目前使用的基于评级的绩效评估系统相比,360反馈方法可以成为更高效、准确和有效的替代方案。员工绩效管理是任何组织的关键职能,无论大小。此外,它在使组织能够成功实现其长期和短期业务目标方面发挥着重要作用。然而,绩效管理或审查不应只关注高绩效者,还应着眼于提升和......
  • Oracle RMAN备份和异机恢复
    引用:https://www.cnblogs.com/hftian/p/12698783.htmlhttps://www.cnblogs.com/shiguoqiang/p/11302178.htmlhttps://www.cnblogs.com/jyzhao/p/9200714.htmlRMAN备份备份策略1.每周日2点数据库全备2.每天4点备份归档以下仅为备份脚本,没有定时任务脚本准备工作查看数......
  • gitlab自动定时备份文件,备份失败发送邮件
    一、需求为预防gitlab出现故障,每天定时备份,备份完成后把之前的备份文件删除,备份成功或失败的时候自动发送邮件提醒,这里的gitlab为docker部署。二、备份命令准备1)备份命令 创建一个gitlab_auto_backup.sh文件,文件内容#!/bin/bash#进入GitLab容器并执行备份--gitlab为do......
  • OCP-043之:数据库备份操作
    1RMAN备份操作1.1基本操作基本的控制和数据文件备份RMAN>CONFIGURECONTROLFILEAUTOBACKUPFORMATFORDEVICETYPEDISKTO'/tmp/backup/cs_%F';newRMANconfigurationparameters:CONFIGURECONTROLFILEAUTOBACKUPFORMATFORDEVICETYPEDISKTO'/tmp/bac......
  • 2024中育云备份下载专用网址
    说明Introduction如在使用过程中有任何问题,请及时与我取得联系。由于本人写的所有下载器都挂在ezy服务器上,所以说会涉及跨域访问当出现登录问题时,请确保,网址栏中应为http://...,而不是https://...在线专栏登录器http://ezy-sxz.oss-cn-hangzhou.aliyuncs.com/zxzllogin.htm......
  • Superset二次开发之基于GitLab OpenAPI 查询项目的提交记录中修改的文件
    背景:Superset二次开发,在处理版本升级的过程中,需要手动迁移代码,如何在Superset项目众多的文件中,记录修改过的文件,迁移代码时只需重点关注这些文件修改的内容即可,但是针对项目中多次的commit信息,每个commit又涉及不同的文件,如何快速梳理出这些二开工作中修改的文件,是我们......
  • ghost备份系统/恢复系统
    准备工作准备一个微PE镜像或者一个微PE启动U盘操作步骤我们这里用虚拟机(win10)进行模拟。首先进入到镜像微PE中(微PE镜像制作请参考微PE工具箱制作成ISO镜像-CSDN博客)进入微PE我们先进行微PE镜像的挂载。先右键虚拟机,点击设置点击如图下所示的位置,将微PE镜像挂载上,点击确......
  • GitLab-CI (自动化集成&部署)
    GitlabCI/CD是一款用于持续集成(CI),持续交付(CD)的工具,相似的工具有Jenkins、TravisCI、GoCD等。Gitlab的CI/CD算是比较简单的了,只需要依靠一份".gitlab-ci.yml",将该文件随代码上传,Gitlab就会自动执行相应的任务,从而实现CI/CD。gitlab-runner可实现cicd1.安装gitlab-runnerdoc......
  • 【ubuntu】记住gitlab的登录账号密码
    一、场景   当我们拉取多个项目时,每次总要输入密码,http方式的时候  二、方法gitconfig--globalcredential.helperstore然后可以手动配置账号密码配置~/.gitconfig文件[user][email protected][credential]helper=store[f......
  • mac 微信、QQ备份到外接硬盘方案(软链接)
    一、微信备份到外接硬盘mac微信备份到外接硬盘方案(软链接)要找到mac版微信的缓存文件很简单。因为它缓存的文件都保存在电脑的【~/Library/Containers/com.tencent.xinWeChat/Data/Library/ApplicationSupport/com.tencent.xinWeChat/2.0b4.0.9】这个路径中。我们只需要......