GitLab配置crontab定时自动备份

1:GitLab备份非常简单,只需要一条命令就可以创建完整的备份

gitlab-rake gitlab:backup:create

使用以上命令,就相当于在/var/opt/gitlab/backups/文件夹下创建了一个类似于1542596619_2018_11_19_9.2.1_gitlab_backup.tar的压缩文件,这个压缩包就是Gitlab所有的完整文件,1542596619_2018_11_19是备份的日期9.2.1是Gitlab的版本,如果你要从Gitlab迁移至Gitlab,请注意迁移的版本和目前的版本是否一致。

GitLab配置crontab定时自动备份

创建完成后,在/var/opt/gitlab/backups/已经创建好备份文件了

GitLab配置crontab定时自动备份

2:更改GitLab备份目录

当然,你可以通过/etc/gitlab/gitlab.rb来修改备份的目录

# gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"

修改成

gitlab_rails['backup_path'] = "/disk/gitlab/backup"

GitLab配置crontab定时自动备份

修改完成之后,使用下面的命令可以重新加载配置文件

gitlab-ctl reconfigure

3:GitLab自动定时备份

在crontab文件里面,每一行代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,每个字段之间用空格分割,没用的段用*代替,格式如下:

m h dom mon dow user command

其中:

m: 表示分钟,可以是从0到59之间的任何整数。

h:表示小时,可以是从0到23之间的任何整数。

dom:表示日期,可以是从1到31之间的任何整数。

mon:表示月份,可以是从1到12之间的任何整数。

dow:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

user : 表示执行的用户。

command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件(如shell文件)。

实现每天凌晨2点进行一次自动备份:通过crontab使用备份命令实现,需重启cron服务
方法1、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。

#输入命令crontab -e sudo crontab -e #输入相应的任务 0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1

方法2、直接编辑/etc/crontab 文件,即vi /etc/crontab,然后添加相应的任务

#编辑 /etc/crontab vi /etc/crontab

然后再编辑框内输入相应的任务

# edited by ouyang 2017-8-11 添加定时任务,每天凌晨两点,执行gitlab备份 0 2 * * * root /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1

或者直接定时执行一个脚本 auto_backup.sh ,脚本内容为

/opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1

然后再 /etc/crontab中,添加相关任务定时执行 auto_backup.sh 脚本文件

sudo chmod +x auto_backup.sh sudo vim auto_backup.sh

/etc/crontab 中添加执行脚本的定时任务,代码如下:

#也可以按照如下所示的方法,定时执行 auto_backup.sh脚本,脚本内容就填写: /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1 0 2 * * * root /data/gitlabData/backups/auto_backup.sh -D 1

编写完 /etc/crontab 文件之后,需要重新启动cron服务

#重新加载cron配置文件 sudo /usr/sbin/service cron reload #重启cron服务 sudo /usr/sbin/service cron restart

实际运行如下

root@Ubuntu4146:~# sudo /usr/sbin/service cron reload root@ubuntu4146:~# sudo /usr/sbin/service cron restart cron stop/waiting cron start/running, process 17738

4:设置备份过期时间

设置只保存最近7天的备份,编辑 /etc/gitlab/gitlab.rb 配置文件,找到gitlab_rails[‘backup_keep_time’],设置为你想要设置的值,然后保存。

gitlab_rails['backup_keep_time'] = 604800

GitLab配置crontab定时自动备份

5:GitLb迁移

首先确保,两个Gitlab的版本是一致的,然后把文件上传到新的Giltab服务器上

赋予备份文件权限

chmod 777 1542596619_2018_11_19_9.2.1_gitlab_backup.tar

停止相关的服务

# 停止相关数据连接服务 gitlab-ctl stop unicorn gitlab-ctl stop sidekiq

执行命令从备份中恢复到Gitlab

gitlab-rake gitlab:backup:restore BACKUP=备份文件编号

比如我们的是1542596619_2018_11_19_9.2.1_gitlab_backup.tar,那编号就是1542596619_2018_11_19_9.2.1

gitlab-rake gitlab:backup:restore BACKUP=1542596619_2018_11_19_9.2.1

然后出现第一个交互页面

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/12184.html