gerrit代码简单备份方案分享
由于前期部署了gerrit代码审核系统,开发调整后的线上代码都放到gerrit上,这就要求我们要保证代码的安全。所以,对gerrit代码的备份至关重要!
备份的策略是:
1)先首次将gerrit项目代码git clone下来,然后后续备份前进行git pull
2)编写备份脚本,crontab定时执行
3)除了本机备份外,还可以备份到远程
下面是操作记录:
比如,备份gerrit上的下列项目代码

查看各个项目的gerrit代码下载地址(ssh方式):

1)首先在本地将gerrit项目代码下载下来(本地的wangshibo用户下的公钥已经放到gerrit上,在wangshibo用户下git clone)
[root@115r gerrit.bak]# su - wangshibo
[root@115r gerrit.bak]$ pwd
/home/wangshibo/gerrit.bak
[root@115r gerrit.bak]$ git clone ssh://wangshibo@103.110.186.130:29418/kevin_ios && scp -p -P 29418 wangshibo@103.110.186.130:hooks/commit-msg kevin_ios/.git/hooks/
[root@115r gerrit.bak]$ git clone ssh://wangshibo@103.110.186.130:29418/kevin_android && scp -p -P 29418 wangshibo@103.110.186.130:hooks/commit-msg fangfull_kevin/.git/hooks/
[root@115r gerrit.bak]$ git clone ssh://wangshibo@103.110.186.130:29418/kevin_old_android && scp -p -P 29418 wangshibo@103.110.186.130:hooks/commit-msg kevin_old_android/.git/hooks/
[root@115r gerrit.bak]$ git clone ssh://wangshibo@103.110.186.130:29418/kevin_old_ios && scp -p -P 29418 wangshibo@103.110.186.130:hooks/commit-msg kevin_old_ios/.git/hooks/
[root@115r gerrit.bak]$ git clone ssh://wangshibo@103.110.186.130:29418/static-kevin && scp -p -P 29418 wangshibo@103.110.186.130:hooks/commit-msg static-kevin/.git/hooks/ [root@115r gerrit.bak]$ ll
总用量 32
drwxr-xr-x. 5 wangshibo wangshibo 4096 9月 14 13:10 kevin_ios
drwxr-xr-x. 5 wangshibo wangshibo 4096 8月 24 09:49 kevin_android
drwxr-xr-x. 4 wangshibo wangshibo 4096 8月 24 09:49 kevin_old_android
drwxr-xr-x. 4 wangshibo wangshibo 4096 8月 24 09:49 kevin_old_ios
drwxr-xr-x. 10 wangshibo wangshibo 4096 8月 29 11:29 static-kevin [root@115r gerrit.bak]$ cd kevin_old_ios/
[root@115r kevin_old_ios]$ git branch -av //查看发现git分支也已经下载下来了
* master fd4c4f6 90
remotes/origin/HEAD -> origin/master
remotes/origin/dev a5bdc2c 提交客户resetCookie
remotes/origin/kevin_old_ios e00aa7e DEL:rm readme file into fangfull_old_ios
remotes/origin/master fd4c4f6 90 [root@115r gerrit.bak]$ cat /home/wangshibo/gerrit-bak.sh
#!/bin/bash
cd /home/wangshibo/gerrit.bak/kevin_android && /usr/local/bin/git pull
cd /home/wangshibo/gerrit.bak/kevin_ios && /usr/local/bin/git pull
cd /home/wangshibo/gerrit.bak/kevin_old_android && /usr/local/bin/git pull
cd /home/wangshibo/gerrit.bak/kevin_old_ios && /usr/local/bin/git pull
cd /home/wangshibo/gerrit.bak/static-kevin && /usr/local/bin/git pull 然后crontab计划任务制定,每小时备份一次
[root@Zabbix-server gerrit.bak]$ crontab -l
10 * * * * /bin/bash -x /home/wangshibo/gerrit-bak.sh > /dev/null 2>&1 2)第一步只是在本地备份,可以将本地备份的git做副本放到远程机器上
下面是远程机器上的操作(远程机器已和本地机器做了ssh信任关系)(192.168.1.15是本地机器)
[root@bastion-IDC ~]# cd /home/backup/
[root@bastion-IDC backup]# ls
192.168.1.15-gerrit gerritbak.sh
[root@bastion-IDC backup]# cat gerritbak.sh
#/bin/bash
/usr/bin/rsync -e "ssh -p22" -avpgolr wangshibo@192.168.1.15:/home/wangshibo/gerrit.bak /home/backup/192.168.1.15-gerrit/`date +gerrit-%Y-%m-%d`/ [root@bastion-IDC backup]# cd 192.168.1.15-gerrit/
[root@bastion-IDC 192.168.1.15-gerrit]# ls
gerrit-2016-9-17
[root@bastion-IDC 192.168.1.15-gerrit]# cd gerrit-2016-9-17/ [root@bastion-IDC gerrit-2016-9-17]# ls gerrit.bak
[root@bastion-IDC gerrit-2016-9-17]# ll gerrit.bak
total 32
drwxr-xr-x. 5 512 512 4096 Aug 24 09:49 kevin_android
drwxr-xr-x. 4 512 512 4096 Aug 24 09:49 kevin_ios
drwxr-xr-x. 4 512 512 4096 Aug 24 09:49 kevin_old_android
drwxr-xr-x. 4 512 512 4096 Aug 24 09:49 kevin_old_ios
drwxr-xr-x. 10 512 512 4096 Aug 29 11:29 static-kevin [root@bastion-IDC 192.168.1.15-gerrit]# cd kevin_old_ios/
[wangshibo@bastion-IDC kevin_old_ios]$ git branch -av //查看,说明git分支也已经备份下来了
* master fd4c4f6 90
remotes/origin/HEAD -> origin/master
remotes/origin/dev a5bdc2c 提交客户resetCookie
remotes/origin/kevin_old_ios e00aa7e DEL:rm readme file into fangfull_old_ios
remotes/origin/master fd4c4f6 90 制定计划任务,每30分钟备份过来一次
[root@bastion-IDC backup]# crontab -l
*/30 * * * * /bin/bash -x /home/backup/gerritbak.sh > /dev/null 2>&1
gerrit代码简单备份方案分享的更多相关文章
- 04.简单了解一下Redis企业级数据备份方案
一.企业级的持久化的配置策略 (1)每隔1分钟去检查如果超过10000个可以变更,则生成一个快照.RDB最多丢1分钟的数据. save 60 10000 (2)AOF一定要打开,fsync,every ...
- Mysql备份系列(1)--备份方案总结性梳理
mysql数据库备份有多么重要已不需过多赘述了,废话不多说!以下总结了mysql数据库的几种备份方案: 一.binlog二进制日志通常作为备份的重要资源,所以再说备份方案之前先总结一下binlog日志 ...
- Excel与XML相互转换 - C# 简单实现方案
Excel与XML相互转换 - C# 简单实现方案 在日常工作中,我需要将数据存储在Excel中进行数据分析和处理,然后再将数据转换为XML格式进行跨平台的数据交换.网上搜索Excel转换为XML的实 ...
- 原创|高逼格企业级MySQL数据库备份方案,原来是这样....
很多人,这里说的是运维工程师们,一提到写某某方案,很是头疼.不是上某度一统搜索,就是同样一句话在N个群全部群发一遍:“有没有某某方案,可以共享一下的吗??求助,各位大佬们”,估计十有八九,全部石沉大海 ...
- Gerrit代码Review实战
代码审核(Code Review)是软件研发质量保障机制中非常重要的一环,但在实际项目执行过程中,却因为种种原因被Delay甚至是忽略.在实践中,给大家推荐一款免费.开放源代码的代码审查软件Gerri ...
- 高逼格企业级MySQL数据库备份方案,原来是这样....
很多人,这里说的是运维工程师们,一提到写某某方案,很是头疼.不是上某度一统搜索,就是同样一句话在N个群全部群发一遍:“有没有某某方案,可以共享一下的吗??求助,各位大佬们”,估计十有八九,全部石沉大海 ...
- 13.在项目中部署redis企业级数据备份方案以及各种踩坑的数据恢复容灾演练
到这里为止,其实还是停留在简单学习知识的程度,学会了redis的持久化的原理和操作,但是在企业中,持久化到底是怎么去用得呢? 企业级的数据备份和各种灾难下的数据恢复,是怎么做得呢? 1.企业级的持久化 ...
- VS Code项目中通过npm包的方式共享代码片段的方案实现
VS Code项目中通过npm包的方式共享代码片段的方案实现 上周在 "VS Code项目中共享自定义的代码片段方案" 的文章中提到过一个共享代码片段的方案,上周经过调研后并没有发 ...
- Mysql备份方案总结性梳理
Mysql备份方案总结性梳理 服务器 mysql 日志 数据库 配置 Mariadb binlog mysql数据库备份有多么重要已不需过多赘述了,废话不多说!以下总结了mysql数据库的几种 ...
随机推荐
- [cb]SceneView 获取鼠标位置
扩展需求 在Scene视图中获取鼠标的位置 Demo 在Scene视图中,当鼠标点击时实例化一个Cube 重点部分 实现代码 using UnityEngine; using UnityEditor; ...
- 监控.net 网站 Glimpse
使用Nuget 安装Glimpse 安装好后,config会默认添加几个节点 安装好之后 只需要浏览器输入 网站/Glimpse.axd 再次进入网站 就可以查看(ajax sql session ...
- VMware虚拟机中CentOS 7的硬盘空间扩容
查看centos7系统挂载点信息 扩展VMWare-centos7硬盘空间 对新增加的硬盘进行分区.格式化 添加新LVM到已有的LVM组,实现扩容 1.查看centos7系统挂载点信息 df -h查看 ...
- 【PAT】B1077 互评成绩计算(20 分)
录入成绩,直接将所有同学给的分数相加,排序,减去最大和最小 省去了遍历一次 注意四舍五入 #include<cstdio> #include<string.h> #includ ...
- 路由交换01-----ICMP协议
路由交换协议------ICMP ICMP协议 ICMP (InternetControl Message Protocol)协议是TCP/IP协议簇的核心协议之一,用来在网络设备之间传递各种差错和控 ...
- 回文数的golang实现
判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数 输入: 输出: true 输入: - 输出: false 解释: 从左向右读, 为 - . 从右向左读, 为 - ...
- 【日常开发】使用多种工具实现 sql查询没有结果的name
本文地址 分享提纲: 1. 事情的背景 2. 解决办法 3. 总结 1. 事情的背景 现在需要将2000条数据的name,从user表中查询出来结果,sql 这样写 SELECT * FROM use ...
- MySQL备份及数据恢复
昨天MySQL意外挂了,重启不成功.然后悲剧的发现,之前做的磁盘快照规则也不知怎么没有生效,数据无备份. 后来咨询.搜索,结果: 1.可以配置两个参数,忽略检查,启动,可以读数据.然后导出,删除文件库 ...
- P2626 斐波那契数列(升级版)(合数的质数分解, 大数为素数的概率十分小的利用)
题目背景 大家都知道,斐波那契数列是满足如下性质的一个数列: f(1)=1f(1) = 1 f(1)=1 f(2)=1f(2) = 1f(2)=1 f(n)=f(n−1)+f(n−2)f(n) = f ...
- logstash同步mysql数据到mysql(问题一)
问题 通过logstash同步数据时 字段类型为tinyint时 通过过去 0变成了false 1变为了true 时间类型 变为 2018-10-16T14:58:02.871Z 分析 开始尝试通过 ...