Gitlab本地备份与远程机备份
我们的需求是:首先将gitlab按照指定时间自动备份至本地机,然后将本地备份定时自动发送至远程机,以此来达到双备份双保险的目的。
1.本地机备份:
由于我们gitlab安装方式不一样,所以本地备份的具体方式也是有一定的区别的,这里主要介绍两种安装方式的备份:
1.1 yum等方式直接安装gitlab:
如果是直接安装gitlab,在备份上相对来说是比较简单的,我们可以直接使用定时任务来进行本地备份:
使用命令crontab -e;
crontab -e
按照自己的需求添加定时任务即可,比如我需要每天12:00以及20:00进行自动备份,我就要添加以下任务(/opt/gitlab/bin/根据自己的安装目录自行修改):
0 12 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
0 20 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
添加完定时任务即可保存退出,然后重启定时任务即可生效:
systemctl restart crond
1.2 docker安装gitlab:
使用docker安装的gitlab最主要的区别就是要进入到容器才可以执行命令,所以我们就不能单纯的使用一个定时任务来达到备份的目的,需要借助一个脚本来备份,我这里将脚本命令起名为gitlab_backup.sh;
#! /bin/bash
docker exec gitlab-dev gitlab-rake gitlab:backup:create
# gitlab-dev 为自己的容器名称,如果不知道可以使用 docker ps 来查询
很简单的一个脚本,就是进入容器然后执行备份命令,有了脚本以后还是要使用定时任务来定时执行脚本进行备份,同样我是按照每天12:00,20:00来进行脚本执行以此达到备份的目的;
使用crontab -e 命令
crontab -e
进入以后添加定时任务(/home/gitlab/为我自己存储脚本的路径,需要自行修改):