本期分享下gerrit如何实现备份,由于之前的一台代码服务器直接down掉,所以为了以防万一,开始备份gerrit数据,有人说,gerrit不过是个审查代码的工具,备份这个做什么,git是分布式代码管理的,即使服务器不工作了,很多人本地的代码也是保存着的,慌什么!!!说得对,git管理的代码不会丢失,但是gerrit上最直观的的open merged abandoned这几个状态的审查不见了,研发不开心了。说是工具,有时候依赖工具也不是什么坏事,毕竟是能提升工作效率的,所以就需要进行gerrit的备份,后就有今天gerrit实现同步备份的分享了。


1.备份服务器gerrit的安装一系列

2.ldap的同步备份

3.gerrit的同步备份(今天要说的!)


说下基本思路:

a.暂停主服务器gerrit服务

GERRIT_BIN="/home/lenovo/review_site/bin/"
GERRIT_BIN44="/ccf_disk/sdd/Gerrit_Backup/review_site/bin/"
cd $GERRIT_BIN
./gerrit.sh stop

b.登录备份服务器,暂停备份服务器gerrit服务,退出备份服务器

ssh lxxxx_xx@10.4.xx.xx > /dev/null 2>&1 << end
cd $GERRIT_BIN44
./gerrit.sh stop
exit
end

c.同步(rsync)主服务器、备份服务器gerrit目录

rsync -vzrtopg --progress -e ssh --delete /home/lenovo/review_site/ lxxx_xx@10.4.xx.xx:/ccf_disk/sdd/Gerrit_Backup/review_site/

d.开启主服务器gerrit服务

cd $GERRIT_BIN
./gerrit.sh start

e.登录备份服务器修改备份服务器gerrit配置及启动脚本,启动备份服务器gerrit服务后退出备份服务器

ssh lxxx_xx@10.4.xx.xx > /dev/null 2>&1 << end

sed -i "s/home\/lenovo/ccf_disk\/sdd\/Gerrit_Backup/g" /ccf_disk/sdd/Gerrit_Backup/review_site/bin/gerrit.sh
sed -i "s/226/69/g" /ccf_disk/sdd/Gerrit_Backup/review_site/etc/gerrit.config
sed -i "s/home\/lenovo/ccf_disk\/sdd\/Gerrit_Backup/g" /ccf_disk/sdd/Gerrit_Backup/review_site/etc/gerrit.config
cd $GERRIT_BIN44
./gerrit.sh start
exit
end

rsync的使用(高效)

rsync -vzrtopg --progress -e ssh --delete /home/lenovo/review_site/ lxxx_xx@10.4.xx.xx:/ccf_disk/sdd/Gerrit_Backup/review_site/

敲黑板!!ssh互信免密:

主服务器登录备份服务器时免输入密码,让脚本继续执行,不会因为需要输入密码而暂停。

ssh-keygen+ssh-copy-id

期待下一期...

【shell】gerrit同步备份脚本的实现的更多相关文章

  1. centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobackupex/Xtrabackup 第四十节课

    centos   shell编程6一些工作中实践脚本   nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志  直接送给bc做计算  gzip  innobacku ...

  2. Shell 同步时间脚本

    Linux系统同步时间脚本 Linux操作系统,如果时间和网络时间差距太大的话.可能会导致程序,进程启动不了.所以linux系统时间同步显得尤为重要,本文在借鉴网上众多资料后,以centos_6.X系 ...

  3. (转)企业Shell实战-MySQL分库分表备份脚本

    本文来自http://www.xuliangwei.com/xubusi/252.html 免费视频讲解见 http://edu.51cto.com/course/course_id-5064.htm ...

  4. Shell脚本使用汇总整理——达梦数据库备份脚本

    Shell脚本使用汇总整理——达梦数据库备份脚本 Shell脚本使用的基本知识点汇总详情见连接: https://www.cnblogs.com/lsy-blogs/p/9223477.html 脚本 ...

  5. Shell脚本使用汇总整理——mysql数据库5.7.8以前备份脚本

    Shell脚本使用汇总整理——mysql数据库5.7.8以前备份脚本 Shell脚本使用的基本知识点汇总详情见连接: https://www.cnblogs.com/lsy-blogs/p/92234 ...

  6. Shell脚本使用汇总整理——mysql数据库5.7.8以后备份脚本

    Shell脚本使用汇总整理——mysql数据库5.7.8以后备份脚本 Shell脚本使用的基本知识点汇总详情见连接: https://www.cnblogs.com/lsy-blogs/p/92234 ...

  7. 用svnsync 同步备份 svn 版本库 从一台服务器到另一台服务器

    如用svnsync 同步备份两台机器的svn .(就以linux服务器到windows服务器为例子) 要同步的项目名称:source_svn svn 版本库1 .4 以上 源目录:           ...

  8. wordpress利用rsync同步备份

    我搭建的wordpress服务器现在使用的系统是opensuse, 服务器上面已做脚本和计划任务将wordpress使用的数据库与web目录每天压缩备份放到 /data/backup目录下 opera ...

  9. 同步备份工具之 rsync

    1.常用同步方法 SCP. NFS. SFTP. http. samba. rsync. drbd(基于文件系统同步,效率高) 2.rsync 介绍 rsync,英文全称是 remote synchr ...

随机推荐

  1. HDU 5387 Clock(分数类+模拟)

    题意: 给你一个格式为hh:mm:ss的时间,问:该时间时针与分针.时针与秒针.分针与秒针之间夹角的度数是多少. 若夹角度数不是整数,则输出最简分数形式A/B,即A与B互质. 解析: 先计算出总的秒数 ...

  2. php的标准输入与输出是什么?

    php的标准输入与输出是什么? 一.总结 php的标准输入与输出(STDIN是一个文件句柄,等同于fopen("php://stdin", 'r')) 1.STDIN是一个文件句柄 ...

  3. apt-get install安装软件时出现依赖错误解决方式

    在使用apt-get install安装软件时,常常会遇到如上图所看到的错误.该错误的意思为缺少依赖软件.解决方式为: aptitude install golang-go

  4. DOM中Event 对象如何使用

    DOM中Event 对象如何使用 一.总结 一句话总结: 1.将event作为参数传递进来,然后就可以调用event对象的各种属性和方法了. <body onmousedown="wh ...

  5. erlang局域网内节点通信——艰难四步曲

    http://blog.chinaunix.net/uid-22566367-id-382011.html 在Programming Erlang这本书中,在写到第十章中,主要实现的是不同节点之间的通 ...

  6. PyCharm 重构(refactor)快捷键

    提取变量(比如一个函数会返回一个变量值):ctrl + alt + v(v:variable) 将某段代码封装为一个函数(函数+函数调用):ctrl + alt + m(m:method)

  7. erlang版本的protobuf

    这两天看了google protocol buffers的文档,protobuf非常不错,解决了一直以来遇到的消息版本不同的问题,对项目中的开发非常有帮助. 最近在学习erlang,官方只有java. ...

  8. BZOJ1010玩具装箱 - 斜率优化dp

    传送门 题目分析: 设\(f[i]\)表示装前i个玩具的花费. 列出转移方程:\[f[i] = max\{f[j] + ((i - (j + 1)) + sum[i] - sum[j] - L))^2 ...

  9. Cordova热更新和App升级 - 简书

    原文:Cordova热更新和App升级 - 简书 公司的cordova项目前段时间增加了热更新功能,自己第一次做的时候在网上查找了很多资料,有的资料写的并不全面遇到了很多坑.因此总结一些在开发过程中遇 ...

  10. for循环中setTimeout,var与let的不同

    先看下面两段代码 for (let i = 0; i < 5; i++) { setTimeout(function () { console.log(i) }, 2000) } for (va ...