IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> gitlab数据自动化备份到其他服务器 -> 正文阅读

[系统运维]gitlab数据自动化备份到其他服务器

gitlab数据自动化备份到其他服务器

gitlab配置本地自动备份

1、本地部署完成的gitlab服务器上操作,手动备份

gitlab-rake gitlab:backup:create

特别说明: 如果/etc/gitlab/gitlab.rb 配置了参数“backup_path”的指定目录,则备份数据会直接到指定目录下,如果没有配置则备份数据到默认”/var/opt/gitlab/backups“下

2、自动定时备份gitlab数据,使用命令crontab -e,添加定时任务

crontab -e

根据自己部门的配置时间进行对应修改

//本部门白天都在提交数据,改成凌晨进行备份处理
0 0 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create

重启crontab

systemctl restart crond

3、本地配置自动清理备份数据,通过修改gitlab自己的配置实现

vim /etc/gitlab/gitlab.rb

将配置文件中backup_keep_time的注释取消掉

//备份保留7天(7*3600*24=604800)
gitlab_rails['backup_keep_time'] = 604800

重新加载配置文件

gitlab-ctl reconfigure

本地备份完成。下一步配置远程备份

远程备份数据

1、gitlab服务器A(172.16.10.90),备份服务器B(172.16.10.100)
2、配置密钥对,取消scp传输密码限制, 在A服务器上生成rsa证书ssh-keygen -t rsa一路回车即可。会在root下生成一个.ssh目录,里面存放id_rsa和id_rsa.pub两个证书,公共密钥保存在 /root/.ssh/id_rsa.pub,私有密钥保存在/root/.ssh/id_rsa
3、将生成的id_rsa.pub文件复制到B服务器上

mkdir -p /root/.ssh
//从A机器将公钥拷贝过去
scp /root/.ssh/id_rsa.pub root@172.16.10.100:/root/.ssh/

4、在备份服务器B上创建authorized_keys文件

touch /root/.ssh/authorized_keys

将scp过来的id_rsa.pub文件内容复制到authorized_keys中

cat id_rsa.pub >> authorized_keys

修改authorized_keys文件权限,如果给777权限,scp的时候还需要密码

chmod 400 authorized_keys

5、创建远程备份脚本
在gitlab服务器上创建脚本

vim /root/auto_backup_to_remote.sh
//文件中添加如下内容
#!/bin/bash

# gitlab 服务器备份路径
LocalBackDir=/var/opt/gitlab/backups

# 远程备份服务器 gitlab备份文件存放路径
RemoteBackDir=/root/gitlab_backup

# 远程备份服务器 登录账户
RemoteUser=root

# 远程备份服务器 IP地址
RemoteIP=(备份服务器B的地址,请你自行修改)

#当前系统日期
DATE=`date +"%Y-%m-%d"`

#Log存放路径
LogFile=$LocalBackDir/log/$DATE.log

# 查找 gitlab本地备份目录下 时间为60分钟之内的,并且后缀为.tar的gitlab备份文件
BACKUPFILE_SEND_TO_REMOTE=$(find $LocalBackDir -type f -mmin -60  -name '*.tar*')

#新建日志文件
touch $LogFile

#追加日志到日志文件
echo "Gitlab auto backup to remote server, start at  $(date +"%Y-%m-%d %H:%M:%S")" >>  $LogFile
echo "---------------------------------------------------------------------------" >> $LogFile

# 输出日志,打印出每次scp的文件名
echo "---------------------The file to scp to remote server is: $BACKUPFILE_SEND_TO_REMOTE-------------------------------" >> $LogFile


#备份到远程服务器
scp $BACKUPFILE_SEND_TO_REMOTE $RemoteUser@$RemoteIP:$RemoteBackDir

#追加日志到日志文件
echo "---------------------------------------------------------------------------" >> $LogFile

修改脚本权限

chmod 777 auto_backup_to_remote.sh

创建日志存放目录

mkdir -p /var/opt/gitlab/backups/log

6、添加定时计划,使用命令crontab -e,将定时任务添加后保存

crontab -e

根据本地备份计划,推迟一个小时后上传

0 1 * * * /root/auto_backup_to_remote.sh -D 1
//重启crontab服务
systemctl restart crond

7、定时删除备份服务器上的备份文件,在备份服务器B上创建定时删除脚本。

//设置备份目录
mkdir -p /root/gitlab_backup
//创建定时删除脚本
vim /root/auto_remove_old_backup.sh
//向脚本中添加如下内容
#!/bin/bash

# 远程备份服务器 gitlab备份文件存放路径
GitlabBackDir=/root/gitlab_backup


# 查找远程备份路径下,超过14天且文件后缀为.tar 的 Gitlab备份文件 然后删除
find $GitlabBackDir -type f -mtime +14 -name '*.tar*' -exec rm {} \;
//修改脚本权限
chmod 777 auto_remove_old_backup.sh

添加定时任务,通过crontab命令

//添加任务
crontab -e
//添加内容,每天凌晨3点执行删除过期备份任务
0 3 * * *  /root/auto_remove_old_backup.sh
//重启cron服务
systemctl restart crond

参考

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-28 12:14:41  更:2022-04-28 12:17:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 19:42:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码