Gitlab备份,Crontab定时备份
1:Gitlab备份非常简单,只需要一条命令就可以创建完整的备份
gitlab-rake gitlab:backup:create
使用以上命令,就相当于在/var/opt/gitlab/backups/文件夹下创建了一个类似于1542596619_2018_11_19_9.2.1_gitlab_backup.tar的压缩文件,这个压缩包就是Gitlab所有的完整文件,1542596619_2018_11_19是备份的日期9.2.1是Gitlab的版本,如果你要从Gitlab迁移至Gitlab,请注意迁移的版本和目前的版本是否一致。

创建完成后,在/var/opt/gitlab/backups/已经创建好备份文件了

2:更改Gitlab备份目录
当然,你可以通过/etc/gitlab/gitlab.rb来修改备份的目录
# gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
修改成
gitlab_rails['backup_path'] = "/disk/gitlab/backup"

修改完成之后,使用下面的命令可以重新加载配置文件
gitlab-ctl reconfigure
3:Gitlab自动定时备份
在crontab文件里面,每一行代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,每个字段之间用空格分割,没用的段用*代替,格式如下:
m h dom mon dow user command
其中:
- m: 表示分钟,可以是从0到59之间的任何整数。
- h:表示小时,可以是从0到23之间的任何整数。
- dom:表示日期,可以是从1到31之间的任何整数。
- mon:表示月份,可以是从1到12之间的任何整数。
- dow:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
- user : 表示执行的用户。
- command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件(如shell文件)。
实现每天凌晨2点进行一次自动备份:通过crontab使用备份命令实现,需重启cron服务
方法1、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
#输入命令crontab -e
sudo crontab -e
#输入相应的任务
* * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=
方法2、直接编辑/etc/crontab 文件,即vi /etc/crontab,然后添加相应的任务
#编辑 /etc/crontab
vi /etc/crontab
然后再编辑框内输入相应的任务
# edited by ouyang 2017-8-11 添加定时任务,每天凌晨两点,执行gitlab备份
* * * root /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=
或者直接定时执行一个脚本 auto_backup.sh ,脚本内容为
/opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=
然后再 /etc/crontab中,添加相关任务定时执行 auto_backup.sh 脚本文件
sudo chmod +x auto_backup.sh
sudo vim auto_backup.sh
/etc/crontab 中添加执行脚本的定时任务,代码如下:
#也可以按照如下所示的方法,定时执行 auto_backup.sh脚本,脚本内容就填写: /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
* * * root /data/gitlabData/backups/auto_backup.sh -D
编写完 /etc/crontab 文件之后,需要重新启动cron服务
#重新加载cron配置文件
sudo /usr/sbin/service cron reload
#重启cron服务
sudo /usr/sbin/service cron restart
实际运行如下
root@ubuntu4146:~# sudo /usr/sbin/service cron reload
root@ubuntu4146:~# sudo /usr/sbin/service cron restart
cron stop/waiting
cron start/running, process
4:设置备份过期时间
设置只保存最近7天的备份,编辑 /etc/gitlab/gitlab.rb 配置文件,找到gitlab_rails[‘backup_keep_time’],设置为你想要设置的值,然后保存。
gitlab_rails['backup_keep_time'] =

5:Gitlab迁移
首先确保,两个Gitlab的版本是一致的,然后把文件上传到新的Giltab服务器上
赋予备份文件权限
chmod 1542596619_2018_11_19_9..1_gitlab_backup.tar
停止相关的服务
# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
执行命令从备份中恢复到Gitlab
gitlab-rake gitlab:backup:restore BACKUP=备份文件编号
比如我们的是1542596619_2018_11_19_9.2.1_gitlab_backup.tar,那编号就是1542596619_2018_11_19_9.2.1
gitlab-rake gitlab:backup:restore BACKUP=1542596619_2018_11_19_9.2.1
然后出现第一个交互页面
root@ubuntu4146:/var/opt/gitlab/backups# gitlab-rake gitlab:backup:restore BACKUP=1502357536_2017_08_10_9.4.3
Unpacking backup ... done
Before restoring the database we recommend removing all existing
tables to avoid future upgrade problems. Be aware that if you have
custom tables in the GitLab database these tables and all data will be
removed. Do you want to continue (yes/no)?
过程中出现交互页面,都输入yes继续执行,完成后开启Gitlab服务
sudo gitlab-ctl start
查看老、新Gitlab服务数据是否一致。
Gitlab备份,Crontab定时备份的更多相关文章
- Linux下使用crontab定时备份日志
上周学习了Linux,其中有使用crontab定时备份日志的内容,现把主要步骤记录如下: 首先需要备份的日志的源目录位于/opt/lampp/logs/access_log 备份到/tmp/logs下 ...
- Python +crontab定时备份目录发送邮件
公司有一台静态页面展示服务器仅供给客户展示我们做的项目,当时买的时候是最低配,也就是磁盘空间为20G的系统盘,考虑到代码量很小所以没有另加磁盘,后来项目多了,就写了个crontab 定时备份目录. 就 ...
- linux下使用crontab定时备份MYSQL数据库的方法:
摘要 linux下使用crontab定时备份MYSQL数据库的方法: 只需按照下面3步做,一切都在你的掌控之下: 第一步:在服务器上配置备份目录代码: ------------------------ ...
- MySQL定时备份之使用Linux下的crontab定时备份实例
这篇文章主要介绍了使用Linux下的crontab进行MySQL定时备份的例子,需要的朋友可以参考下 复制代码代码如下: ##################################### ...
- Linux下MySQL备份以及crontab定时备份
1. 备份某个数据库 ################################################################## # 备份某个数据库 ############ ...
- MySQL使用crontab定时备份不执行问题
在使用crontab定时备份数据库时,发现并没有执行备份命令. 下面是定时备份的代码: 30 1 * * * /usr/local/mysql/bin/mysqldump --defaults-ext ...
- [转帖]tar高级教程:增量备份、定时备份、网络备份
tar高级教程:增量备份.定时备份.网络备份 作者: lesca 分类: Tutorials, Ubuntu 发布时间: 2012-03-01 11:42 ė浏览 27,065 次 61条评论 一.概 ...
- Centos 8 上定时备份Gitlab ,脚本实现定时备份,备份恢复
定时备份 要求 为了能够备份和恢复,请确保你的系统上安装了Rsync yum install rsync -y 配置备份目标机器免密认证 执行ssh-keygen -t rsa 生成私钥和公钥 ssh ...
- Linux 使用crontab定时备份Mysql数据库
项目中数据库的数据是至关重要的!在实际项目中,遇到有客户机房断电导致数据库数据丢失的问题,又因为备份容灾不及时,导致部分数据恢复不了,而刚好这部分丢失的数据对于客户来说又是至关重要的,那么怎么办呢?盲 ...
随机推荐
- 6 Maven聚合与集成
Maven的聚合特性能够把项目的各个模块聚合在一起构件,而Maven的继承特性能够帮助抽取各个模块相同的依赖和插件等配置,简化POM的同时,还能促进各个模块配置的一致性. 1.聚合 为 ...
- Ace(一)环境搭建
1.下载ACE源码代码 http://www.cs.wustl.edu/~schmidt/ACE.html 2.编译源代码 2.1 进入源码包解压后的ACE_wrappers\ace目录, ...
- NOIP2015_提高组Day2_3_运输计划
这题思路很简单: 先对每个询问求距离,对距离由大到小排序, 二分最小距离,验证是否可行,验证时用差分处理: #include<iostream> #include<cstring&g ...
- Java JSON数据创建和读取
Java json数据创建 package com.JavaTest; import com.google.gson.JsonArray; import com.google.gson.JsonOb ...
- js程序开发-3
<h1>Date()类型</h1> 获取日期和时间 getDate() 获取日 1-31 getDay () 获取星期 0-6 getMonth () 获取月 0-11 get ...
- error MSB6006: “CL.exe”已退出,代码为 -1073741502。
错误1error MSB6006: “CL.exe”已退出,代码为 -1073741502.C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Plat ...
- Java(一)——认识Java语言
1.Java语言简介 Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言,具有卓越的通用性.高效性.平台移植性和安全性.Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单 ...
- certificate unknown(46) - 中间证书问题排查
因为腾讯云的网站备案迟迟没有批下来,因此使用了朋友在阿里云的域名yk,我则申请了一台阿里云服务器,并将域名解析映射至该服务器.SSL证书则是在腾讯云上申请的,使用了Apache文件夹中的文件,放置在c ...
- Mysql数据库--语句整理/提升/进阶/高级使用技巧
一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备 ...
- 51nod 1327 棋盘游戏——延迟决策的dp
题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1327 因为一列填1个或0个(或0个!!!),而一行不知填多少个,所 ...