backupGitblitToOtherService.sh

#/bin/bash
# 注意1:使用此脚本前必须在本机运行 【ssh-keygen】生成公私密钥文件,然后用【ssh-copy-id -i 本机公钥文件 远程用户名@远程IP】将本机公钥给远>程主机
#
# 注意2:迁移到其他机器使用:只需修改 sourceGitbliDir  targetGitblitDir  targetIp 变量即可# 本机gitblit目录
sourceGitbliDir=/www/server/gitblit_local/gitblit-1.9.3
sourceDirDataGit=${sourceGitbliDir}/data/git# 远程主机gitblit的目录
targetGitblitDir=/www/server/gitblit_local/gitblit-1.9.3
targetLinuxUser='root'
targetIp='192.168.80.129'
targetDirData=${targetGitblitDir}/data# 远程IP地址检测
echo "====检测目标地址${targetIp}网络连通性,请耐心等待===="
if ( ping -c 2 ${targetIp} &>/dev/null ); thenecho "目标地址${targetIp}:通"
else# 直接退出整个Shell脚本echo "错误:目标地址${targetIp}:不通,请检查当前主机与目标主机网络连通性"exit 1
fiecho '====开始备份===='
echo "本机即将备份的源目录:【${sourceDirDataGit}】"
echo "远程目标IP地址、用户、目标目录: ${targetIp}、${targetLinuxUser}、【${targetDirData}】"
if (ssh root@${targetIp} test -e ${targetGitblitDir}); thenecho '备份模式:仅备份data/git仓库、以及用户账号密码数据'echo '====备份中,请耐心等待===='# 运行此脚本时不将复制的文件日志显示出来,如果需显示请删掉 【 >/dev/null 2>&1】scp -r ${sourceDirDataGit}   ${targetLinuxUser}@${targetIp}:${targetDirData} >/dev/null 2>&1scp  ${sourceGitbliDir}/data/users.conf   ${targetLinuxUser}@${targetIp}:${targetDirData}/users.conf >/dev/null 2>&1
elseecho '备份模式:Gitblit整个程序全量备份'echo '====备份中,请耐心等待===='targetGitblitParentDir=$(readlink -f ${targetGitblitDir} | xargs dirname)# 创建Gitblit目录的父目录,因为scp不会主动创建父目录,不存在父目录则会传输报错ssh root@${targetIp} "[ -d ${targetGitblitParentDir} ] || mkdir -p ${targetGitblitParentDir}"# 运行此脚本时不将复制的文件日志显示出来,如果需显示请删掉 【 >/dev/null 2>&1】scp -r ${sourceGitbliDir}   ${targetLinuxUser}@${targetIp}:${targetGitblitParentDir} >/dev/null 2>&1
fi
echo '====结束备份===='echo "====备份服务器${targetIp}重启Gitblit中,请耐心等待===="ssh root@${targetIp} "cd ${targetGitblitDir}"' &&  ( [  -z "$(ps -ef | grep gitblit | grep -v grep)"  ] || ( echo "关闭目标服务器的Gitblit" && sh gitblit-stop.sh &>/dev/null && sleep 5s ) ) && echo "启动目标服务器的Gitblit" && sh gitblit.sh &>/dev/null'echo "====备份服务器${targetIp}重启Gitblit结束,访问浏览器查看备份情况===="


前提条件:源Gitblit的部署必须基于官方的脚本进行启动即gitblit.sh == 保证数据目录是在gitblit目录的data目录中

Shell常用脚本:Gitblit迁移以及备份相关推荐

  1. android adb 分析,android adb shell常用脚本分析课件.ppt

    android adb shell常用脚本分析课件 ADB概要 Android 调试系统是一个面对客户服务系统,包括三个组成部分: 电脑上运行的客户端. 在你用于开发的机器上作为后台进程运行的服务器. ...

  2. linux shell -常用脚本

    题记:来源与网络和自己工作中总结.有些脚本片段,函数经常使用. 1.判断登录用户 1.1脚本 [devtac@test_1 shell]$ vi check_user.sh#! /bin/shecho ...

  3. Shell脚本:Linux下定时备份MySQL数据库

    对任何一个已经上线的网站站点来说,数据备份都是必须的.无论版本更新还是服务器迁移,备份数据的重要性不言而喻.人工备份数据的方式不单耗费大量时间和精力,还灰常不专业的说.于是,有了下面这段脚本的出现.参 ...

  4. 企业Shell实战-MySQL分库分表备份脚本

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

  5. linux 脚本 if判断 o,shell脚本常用脚本:if判断

    shell脚本常用脚本:if判断 str1 = str2当两个串有相同内容.长度时为真 str1 != str2当串str1和str2不等时为真 -n str1当串的长度大于0时为真(串非空) -z ...

  6. linux编程 —— shell编程脚本常用语法总结 【学习笔记】

    文档声明: 以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正.并且该文档在后期会随着学习的深入不断补充完善.感谢各位的参考查看. 笔记资料仅供学习交流使用,转载请标明出处 ...

  7. docker内网部署gitlab步骤及gitblit迁移gitlab踩坑gitlab备份nas

    docker内网部署gitlab步骤及gitblit迁移gitlab踩坑 1.部署情况 2.部署步骤 1.将gitlab docker镜像gitlab.tar拷贝到服务器中并加载 2.运行镜像 3.配 ...

  8. shell常用的基础命令

    shell常用的基础命令 1 diff命令 2 patch命令 3 cut命令 4 sort命令 5 uniq 命令 6 tr命令 7 &&和 || 8 test命令 8.1 test ...

  9. linux Shell(脚本)编程入门实例讲解详解

    linux Shell(脚本)编程入门实例讲解详解 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具.Shell不仅仅是命令的收集, ...

最新文章

  1. PVN3D: 基于Deep Point-wise 3D关键点投票的6D姿态估计网络(香港科技大学提出)
  2. ASP.NET MVC 4高级编程(第4版)
  3. 用 Python 实现文件查找
  4. IA-32系统编程指南 - 第三章 保护模式的内存管理【2】
  5. codeforces 231A-C语言解题报告
  6. gcc: weak_alias如何使用
  7. Java使用Selenium几个例子
  8. midi转简谱_音乐小技巧分享:五线谱转简谱与MIDI的快速方法
  9. PYQT5:基于QsciScintilla的代码编辑器分析10--语法高亮颜色选择
  10. 最新Python3.10官方文档PDF来了(最新Python大词典)
  11. 2017cad光标大小怎么调_2017版CAD画直线时怎么设置光标处有显示长度和角度的?...
  12. 安全测试(六)iOS ipa软件安全 APP应用安全 手机软件安全 ipa安全 ipa反编译 应用日志窃取 ipa漏洞 应用软件本身功能漏洞 iPhone移动应用常规安全讲解
  13. MFC下的汉字串拼音首字母提取
  14. Allegro通孔电气焊盘
  15. DOS下对系统重新进行分区
  16. (五证合一)法人和其他组织统一社会信用代码编码规则
  17. 乐视网复牌即跌停,仍有千万买单甘作“接盘侠”
  18. Java带GUI求柱体的体积
  19. 电子膨胀阀的原理、使用和特点,及其与热力膨胀阀的性能比较
  20. 超详解三子棋(优化后)【万字教程包教包会】

热门文章

  1. MSIL简介 - Part 2 - 使用局部变量
  2. 笑话:流传硅谷的一则冷笑话
  3. Java培训靠谱吗?能学到什么?
  4. 智慧城市系列课程4-智慧城市-城市治理-新能源火灾和水务监管
  5. HTML选择Excel文件显示表格
  6. Java中级面试题记录(一)
  7. Java Method类简介说明
  8. 《汽修汽配管理系统——“汽修管理”模块》项目研发阶段性总结
  9. 阿里分布式数据库服务相关介绍
  10. Tornado重定向(三)