目录
1:前言
防止gitlab服务器奔溃,或者被有心人恶意删除,所以采用云端备份的方式。即使服务器被删除,也可以在云端下载到新服务器,重新恢复。
2:备份gitlab
注:gitlab备份还原只能在相同版本中才能恢复,否则提示版本不成功。
命令:
gitlab-rake gitlab:backup:create
备份完成,可在 /var/opt/gitlab/backups/ 路径查看
sudo ls /var/opt/gitlab/backups/
3:安装mega云盘
mega地址:https://mega.io/start ,自行注册账号。
MEGA云盘是一款在线存储文件的云盘软件;MEGA云盘为用户提供50GB的免费存储空间,满足用户的存储需求,让用户可以向自己的文件备份在云盘中,不用担心丢失;MEGA云盘支持文件同步功能,将电脑的文件夹和云盘文件夹同步。
我选择mega三点原因:
1:支持linux版本,命令操作。
2:免费版本20G空间,作为备份数据已经足够。
3:加密,安全。(以前网易被脱裤,也是用的这个找回的裤子)
下载安装:
选择自己系统版本 https://mega.io/cmd
下载后,上传至或者放在自己服务的位置安装,如路径:/home/ubuntu/megacmd-xUbuntu_20.04_amd64.deb
sudo apt install /home/ubuntu/megacmd-xUbuntu_20.04_amd64.deb
安装完成,登录备份
sudo mega-login 账户名称 密码
#登录一次后,主要没退出,重启还是这个用户
sudo mega-sync 本地目录 mega远程目录
#执行这条后,以后自动实时同步,无需重复操作。
备份完成后,可在mega-ls 查看远程目录。
4:安装指定版本gitlab
注:gitlab备份还原只能在相同版本中才能恢复,否则提示版本不成功。
查看gitlab版本。
方法一:在gitlab登录界面点击help查看
(推荐此方法,因为可直观看见是ce版还是ee版)
如图所示,版本为gitlab-ce 14.5.2
方法二:在服务器命令查看
ubuntu@ubuntu:~$ cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
14.5.2
查看安装指定版本:https://packages.gitlab.com/gitlab
选择自己的系统合适的版本,我的为ubuntu20.04,所以选择这个
点进去,按命令安装即可
5:还原gitlab
上传备份文件至 /var/opt/gitlab/backups/ 路径。
1)停止相关数据连接服务:
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
# Verify查看状态
sudo gitlab-ctl status
2)恢复数据
sudo gitlab-rake gitlab:backup:restore BACKUP=1645429916_2022_02_21_14.5.2
会提示你是否已关闭相关数据连接服务,确定后输入yes即可
3)重载配置,重启
完成后
sudo gitlab-ctl reconfigure
#重载配置
sudo gitlab-ctl restart
#重启数据库相关服务
sudo gitlab-rake gitlab:check SANITIZE=true
#检查配置
都没问题后,登录服务器ip地址。输入以前的账号密码,成功登录,恢复成功。
6:定时任务自动备份
1)定时任务
gitlab备份目录权限问题,直接切换至root用户操作。
crontab -e
添加以下任务
0 2 * * * find /var/opt/gitlab/backups/ -mtime +2 -name "*.tar" -delete && gitlab-rake gitlab:backup:create
删除两天前的备份文件,同时备份当前时间的文件。
其他无需设置,因为mega-sync命令后,会实时同步到mega云盘。
2)开机自启mega
centos:
直接操作如下即可:
sudo vim /etc/rc.local
#打开后增加一行:
mega-sync /var/opt/gitlab/backups/ /gitlab/
#保存推出,下次开机后就自动运行了,将/var/opt/gitlab/backups/文件同步到mega的gitlab文件夹。
ubuntu:
Ubuntu 16.04 版本开始去除了 rc.local 文件,自启动服务方面基本由 systemd 全面接管了。
在 Ubuntu 20.04 中这个文件存在。看起来只是把 rc.local 功能隐藏起来了。如果你的版本没有这个文件,可以自己创建一个,然后把内容添加上去。
sudo vim /lib/systemd/system/rc-local.service
添加以下内容
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
创建 rc.local 文件
sudo vim /etc/rc.local
文件内容:
#!/bin/sh
mega-sync /var/opt/gitlab/backups/ /gitlab/
# 这里添加要开机执行的脚本和命令等等
exit 0
添加可执行权限
sudo chmod +x /etc/rc.local
创建软链接
sudo ln -s /lib/systemd/system/rc-local.service /etc/sysstemd/system/rc-local.service
重启系统 rc.local 就生效了。
打赏作者