一,在windows 服务器建立一个共享文件夹和在linux 挂在这个共享文件夹
二,gitlab 备份
1,设置备份目录路径,在配置文件中加入
[root@gitlab ~]mkdir -p /home/gitlab_back
[root@gitlab ~] vim /etc/gitlab/gitlab.rb
```
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/home/gitlab_back"
````
如上设置了gitlab备份目录路径为/home/gitlab_back,最后使用下面命令重载gitlab配置文件,是上述修改生效!
[root@gitlab ~]gitlab-ctl reconfigure
2,gitlab 备份操作
制定任务计划每天23点执行备份命令
[root@gitlab ~]crontab -e
第2个任务计划是清理30天前的备份文件,将最新的1天备份目录下的文件复制到另一个目录(挂载了另外一台windows服务器的共享文件夹),以下是脚本内容
````
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
/usr/bin/find /home/gitlab_back -mtime +30 -name "".tar |xargs rm -rf
/usr/bin/find /home/gitlab_back/ -mtime -1 -name "".tar -exec cp -a {} /gitlab_tar/ \;
````
三,异地服务器还原
一旦原主机宕机,系统损坏,那就要拿windows共享文件夹的gitlab 备份文件进行还原了
1, 在新主机安装gitlab 服务,版本需要跟原来的一样,我们用的是gitlab-ce-10.0.2
````
git clone https://gitlab.com/xhang/gitlab.git
yum install -y curl openssh-server openssh-clients postfix cronie policycoreutils-python
systemctl start postfix
systemctl enable postfix
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.2-ce.0.el7.x86_64.rpm
ls
rpm -i gitlab-ce-10.0.2-ce.0.el7.x86_64.rpm
gitlab-ctl reconfigure
````
2,然后停止相关数据连接服务
[root@gitlab ~]gitlab-ctl stop unicorn
[root@gitlab ~]gitlab-ctl stop sidekiq
将windows 备份的gitlab.rb 配置文件复制到本机替换,然后根据配置文件中设置的备份目录在本机新建目录
还有将最新的备份文件复制到本机备份目录里面,设置备份文件权限 chmod 777
3,进行还原
[root@gitlab ~]cd /home/gitlab_back
[root@gitlab ~]gitlab-rake gitlab:backup:restore BACKUP=1531753276_2018_07_16_10.0.2
4,最后再次启动
[root@gitlab ~]gitlab-ctl start