目录
b、执行gitlab-rake gitlab:backup:create命令
一、简介
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建
起来的Web服务。安装方法是参考GitLab在GitHub上的Wiki页面。Gitlab是被广泛使用的基于git的
开源代码管理平台, 基于Ruby on Rails构建, 主要针对软件开发过程中产生的代码和文档进行管理,
Gitlab主要针对group和project两个维度进行代码和文档管理, 其中group是群组, project是工程项目,
一个group可以管理多个project, 可以理解为一个群组中有多项软件开发任务, 而一个project中可能
包含多个branch, 意为每个项目中有多个分支, 分支间相互独立, 不同分支可以进行归并。
二、具体配置过程
a、创建备份路径并且设置权限
mkdir -p /data/gitlab/backups
chown -R git.git /data/gitlab/backups
chmod -R 777 /data/gitlab/backups
b、执行gitlab-rake gitlab:backup:create命令
在backups目录下生成了备份rar文件,有的版本是gitlab-rake gitlab:backups:create
c、编辑gitlab配置文件,设置参数
#vim打开配置文件
vim /etc/gitlab/gitlab.rb
#按照自己的实际情况修改目录和时间
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_archive_permissions'] = 0644
gitlab_rails['backup_keep_time'] = 1296000 #我这里设置的是15天
#重新加载配置文件,使修改生效
gitlab-ctl reconfigure
gitlab-ctl restart
d 启动定时任务,例如每天22点备份
vim /etc/crontab
#里面填写以下内容
0 22 * * * root /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
#记得把crontab服务加入到开机启动项里面
systemctl restart crond
systemctl enable crond
以下是crontab的配置的参数介绍,不懂的可以看下面的介绍,修改自己需要的时间,这里给
大家列出了,省去你们再额外搜索了。
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
环境变量CRON=1的作用是如果没有任何错误发生时, 抑制备份脚本的所有进度输出
e、脚本方式
#!/bin/bash
backupdir=/home/backup/code
#获取最新的备份文件
newfile=`ls -tl | grep tar | head -n 1 |awk '{print $9}'`
#gitlab备份命令
gitlab-rake gitlab:backup:create