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
#输入相应的任务
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1  

方法2、直接编辑/etc/crontab 文件,即vi /etc/crontab,然后添加相应的任务

#编辑 /etc/crontab
vi /etc/crontab 

然后再编辑框内输入相应的任务

# edited by ouyang 2017-8-11 添加定时任务,每天凌晨两点,执行gitlab备份
0  2    * * *   root    /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1  

或者直接定时执行一个脚本 auto_backup.sh ,脚本内容为

/opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1

然后再 /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
0 2    * * *   root    /data/gitlabData/backups/auto_backup.sh -D 1  

编写完 /etc/crontab 文件之后,需要重新启动cron服务

#重新加载cron配置文件
sudo /usr/sbin/service cron reload
#重启cron服务
sudo /usr/sbin/service cron restart 

实际运行如下

[email protected]:~# sudo /usr/sbin/service cron reload
[email protected]:~# sudo /usr/sbin/service cron restart
cron stop/waiting
cron start/running, process 17738

4:设置备份过期时间

设置只保存最近7天的备份,编辑 /etc/gitlab/gitlab.rb 配置文件,找到gitlab_rails[‘backup_keep_time’],设置为你想要设置的值,然后保存。

gitlab_rails[‘backup_keep_time‘] = 604800  

5:Gitlab迁移

首先确保,两个Gitlab的版本是一致的,然后把文件上传到新的Giltab服务器上

赋予备份文件权限

chmod 777 1542596619_2018_11_19_9.2.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

然后出现第一个交互页面

[email protected]:/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服务数据是否一致。

原文地址:https://www.cnblogs.com/willamwang/p/9982222.html

时间: 2024-11-05 19:38:38

Gitlab备份,Crontab定时备份的相关文章

Linux下使用crontab定时备份日志

上周学习了Linux,其中有使用crontab定时备份日志的内容,现把主要步骤记录如下: 首先需要备份的日志的源目录位于/opt/lampp/logs/access_log 备份到/tmp/logs下 备份文件加上时间戳date +%Y%m%d%H%M%S 以上是备份说明,下面分三步操作 一.shell脚本 [[email protected] lampp]# vi test.sh    #创建shell脚本 #!/bin/bash                                

[转帖]tar高级教程:增量备份、定时备份、网络备份

tar高级教程:增量备份.定时备份.网络备份 作者: lesca 分类: Tutorials, Ubuntu 发布时间: 2012-03-01 11:42 ?浏览 27,065 次 61条评论 一.概述 备份与恢复对于系统维护而言是至关重要的事情.不合理的备份与还原会让你的数据面临丢失的风险.许多用户都在丢失重要数据后才意识到这种风险.而要从这种情况恢复数据将是非常耗时并且困难的.所以我们应该从别人的错误中吸取教训,并确保你的系统处于保护中.先考虑一些问题: 何时进行备份? 如果你可以接受一个星

linux下使用crontab定时备份MYSQL数据库的方法:

摘要 只需按照下面3步做,一切都在你的掌控之下: 第一步:在服务器上配置备份目录代码: -------------------------------------------------------------------------------- mkdir /var/lib/mysqlbackup cd /var/lib/mysqlbackup --------------------------------------------------------------------------

使用crontab定时备份MYSQL数据库的方法

第一步:在服务器上配置备份目录代码: -------------------------------------------------------------------------------- mkdir /var/lib/mysqlbackup cd /var/lib/mysqlbackup -------------------------------------------------------------------------------- 第二步:编写备份脚本代码: ----

使用crontab定时备份Mysql整个数据库的方法

1.在服务器上配置备份目录 mkdir /data/mysqlbackup 2.编写备份脚本代码 vi dbbackup.sh 粘帖以下代码,务必更改其中的username,password和dbname. 这里以备份整个数据库为例 代码: #!/bin/sh mysqldump -uuser -ppassword --single-transaction --events --triggers --routines --all-databases | gzip > /data/mysqlbac

tar高级教程:增量备份、定时备份、网络备份

一.概述 备份与恢复对于系统维护而言是至关重要的事情.不合理的备份与还原会让你的数据面临丢失的风险.许多用户都在丢失重要数据后才意识到这种风险.而要从这种情况恢复数据将是非常耗时并且困难的.所以我们应该从别人的错误中吸取教训,并确保你的系统处于保护中.先考虑一些问题: 何时进行备份? 如果你可以接受一个星期的数据丢失,那么每周备份一次就足够了.但是如果你只能容忍一天的数据损失,那么你就必须每天晚上进行备份. 备份到哪? 显然备份到系统所在磁盘不是明智之举,用户应该备份到外接硬盘或者磁带上面. 为

ubuntu crontab 定时备份postgres数据库并上传ftp服务器

最近公司要求备份数据库,所以就查了比较作的资料.废话不多说,入正题. 目的:定期备份ubuntu下的postgres数据库,打包上传到指定ftp服务器. 经过查找资料,解决方法: ①编写备份数据库.打包压缩.上传指定ftp的脚本. ②将该脚本加入到ubuntu定期计划任务crontab中. 下边是执行的步骤: ①编写shelll脚本:bk.sh,对于对shell脚本不了解的,可以百度w3cshool shell. 最好用root用户编写:su root. 编写完后,添加执行权限,新编写的shel

crontab 定时备份 出现permission:denied

主要原因是第一天晚上没有进入到Mac的root权限,所以一直就是权限不足. 今天我会了进入Mac root权限了,我一试就好了. contab 定时命令: * * * * * /bin/sh /Users/wky/Desktop/backup.sh > /Users/wky/Desktop/backup.txt 2&> 1 这个是每分钟备份一次. **********************************************************************

Crontab定时备份数据库

1.创建一个shell脚本文件 cd usr mkdir dabackup vim backup.sh echo "-----------------------------" >> /usr/dbbackup/dbbackup.log echo `date +%Y%m%d`"erms Database backup start" >> /usr/dbbackup/dbbackup.log /usr/local/mysql/bin/msyql