gitlab云盘定时自动备份,gitlab服务器迁移、还原恢复

✍️Auth:star皆空       Date:2022/02/23       Cat:Linux服务器       👁️:1,254 次浏览

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 就生效了。

打赏作者

发表评论