git在linux备份,Gitlab数据备份与恢复

Gitlab备份与恢复:

git在linux备份,Gitlab数据备份与恢复_第1张图片

修改gitlab配置文件:

vim /etc/gitlab/gitlab.rb

#指定备份后数据存放的路径、权限、时间配置

gitlab_rails['manage_backup_path'] = true                  #292行      开启备份功能

gitlab_rails['backup_path'] = "/opt/gitlab_backup"         #293行      指定备份的路径

gitlab_rails['backup_archive_permissions'] = 0644          #296行      备份文件的权限

gitlab_rails['backup_keep_time'] = 7776000                 #301行      备份保留时间(保留90天)

创建备份目录并授权:

mkdir /opt/gitlab_backup && chown -R git.git /opt/gitlab_backup/

重新生效gitlab配置:

gitlab-ctl reconfigure

手动备份:

gitlab-rake gitlab:backup:create

git在linux备份,Gitlab数据备份与恢复_第2张图片

查看备份:

ll -sh /opt/gitlab_backup/

196c6b121bed4d82242e95eebf845e5e.png

编写备份脚本,结合crontab实施自动定时备份,比如每天0点、6点、12点、18点各备份一次

编写备份脚本:

cat /opt/gitlab_backup/git_back.sh

#!/usr/bin/bash

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

chmod +x /opt/gitlab_backup/git_back.sh

注意:环境变量CRON=1的作用是如果没有任何错误发生时, 抑制备份脚本的所有进度输出

加入定时任务:

crontab -l

0 0,6,12,18 * * * /bin/bash /opt/gitlab_backup/git_back.sh > /dev/null 2>&1

删除测试项目:

git在linux备份,Gitlab数据备份与恢复_第3张图片

GItlab只能还原到与备份文件相同的gitlab版本。

在上面gitlab备份之前创建了opstands项目,然后不小心误删了opstands项目,现在就进行gitlab恢复操作

关闭数据库连接服务:

gitlab-ctl stop unicorn && gitlab-ctl stop sidekiq

gitlab-ctl status

run: gitaly: (pid 38652) 472s; run: log: (pid 693) 15213s

run: gitlab-monitor: (pid 38662) 472s; run: log: (pid 692) 15213s

run: gitlab-workhorse: (pid 38665) 471s; run: log: (pid 694) 15213s

run: logrotate: (pid 38673) 471s; run: log: (pid 691) 15213s

run: nginx: (pid 38689) 470s; run: log: (pid 690) 15213s

run: node-exporter: (pid 38695) 470s; run: log: (pid 685) 15214s

run: postgres-exporter: (pid 38702) 470s; run: log: (pid 679) 15214s

run: postgresql: (pid 38707) 469s; run: log: (pid 678) 15214s

run: prometheus: (pid 38715) 469s; run: log: (pid 676) 15214s

run: redis: (pid 38721) 468s; run: log: (pid 680) 15214s

run: redis-exporter: (pid 38728) 468s; run: log: (pid 674) 15214s

down: sidekiq: 43s, normally up; run: log: (pid 682) 15214s

down: unicorn: 48s, normally up; run: log: (pid 688) 15213s

现在通过之前的备份文件进行恢复(必须要备份文件放到备份路径下,这里备份路径我自定义的/opt/gitlab_backup,默认的是/var/opt/gitlab/backups)

恢复数据:

Gitlab的恢复操作会先将当前所有的数据清空,然后再根据备份数据进行恢复.

在指定备份文件恢复时,gitlab会自动补全后面的文件名,注意。

cd /opt/gitlab_backup

gitlab-rake gitlab:backup:restore BACKUP=1553965778_2019_03_31_10.7.3       ---#文件名会自动补全-(注意)

6d932acb579979cb0706475e1287bbac.png

git在linux备份,Gitlab数据备份与恢复_第4张图片

从web界面查看项目是否恢复:

git在linux备份,Gitlab数据备份与恢复_第5张图片

你可能感兴趣的:(git在linux备份)