svn实现容灾备份

2023-11-10

Svn的容灾备份和数据恢复

环境声明

这里采用svn的镜像备份
搭建SVN在我的上一篇博客中:搭建部署SVN服务器
源版本路径:svn://192.168.244.134/ceshi
镜像版本: ip 192.168.244.132

建立镜像版本库:

	  yum install –y svn
	  svnadmin create /home/svn/test       #创建版本库
	  cd /home/svn/test/hooks/          
	  cp pre-revprop-change.tmpl pre-revprop-change  
	  chmod a+x pre-revprop-change     
	  vim pre-revprop-change
	  将最后一行的exit 1 改为 exit 0
	  保存退出

初始化镜像版本库:

   svnsync init file:///home/svn/test/ svn://192.168.244.134/ceshi/
   输入相应的root密码,以及passwd中对应的用户名和密码即可。

开启svn服务:

   svnserve –d –r /home/svn/      #路径只需要到版本库的上一级即可。否则会出现报错

同步源svn:
svnsync sync file:///home/svn/test/ #以后的每次同步只需要在开启svn服务的情况下执行这条命令即可
执行结果:
在这里插入图片描述

同步成功!
在镜像版本中,可以看到,客户端的工作副本在/home/svn/test/test中。

当源版本服务器宕掉时,只需要将原来的url改为svn://192.168.244.132/test即可正常访问svn服务器。
为了确保每天能备份到源版本的文件,将备份工作加入任务计划:

 	crontab –e
   	   0 0 * * * /usr/bin/sh /zuoye/task.sh
   	 
   	
   	下面是task.sh,用于检测svn是否能正常备份
   	#!/bin/bash
   	svnsync sync file:///home/svn/test/ > /tmp/1.txt 2>&1
   	res=`echo $?`
   	date_svn=`date '+%Y%m%d'`
   	if [ $res == 1 ];then
   		touch /SvnError${date_svn}.log
   		cat /tmp/1.txt > /SvnError${date_svn}.log
   		cat /SvnError${date_svn}.log |mail -s "svn错误日志" xxxxx@qq.com
   	else
   		touch /Svn${date_svn}.log
   		cat /tmp/1.txt > /Svn${date_svn}.log
   		cat /Svn${date_svn}.log |mail -s "svn正常报告"  xxxx@qq.com
   	fi

为了保证mail服务能启动,若mail无法发送邮件,则可试用以下操作:

		yum install –y jwhois
		vim /etc/mail.rc 在最后添加发邮件账户相关内容
		set bsdcompat
		set from=yourname @xxx.com
		set smtp=smtp.qiye.163.com    #若是个人网易账户,此处为smtp.163.com
		set smtp-auth-user=yourname@xxx.com
		set smtp-auth-password=相应邮箱密码
		set smtp-auth=login
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

svn实现容灾备份 的相关文章

  • 在Linux伪终端中执行从一个终端发送到另一个终端的字符串

    假设我有一个终端 其中 tty 的输出是 dev pts 2 我想从另一个终端向第一个终端发送命令并执行它 使用 echo ls gt dev pts 2 仅在第一个终端中打印 ls 有没有办法执行字符串 不 终端不执行命令 它们只是数据的
  • 即使 makefile 和源代码存在,为什么“Build Project”在 Eclipse Helios CDT 中显示为灰色?

    我无法构建我的项目 我在 Eclipse Helios 中创建了一个新的 CDT 项目 并告诉它使用现有的源代码和 makefile 这两者都正确显示在 Package 和 Project 视图中 然而 项目 菜单中的 构建全部 和 构建项
  • Nasm 打印到下一行

    我用 nasm Assembly 编写了以下程序 section text global start start Input variables mov edx inLen mov ecx inMsg mov ebx 1 mov eax 4
  • 在64位操作系统上以32位模式和64位模式编译ioctl函数的执行有什么不同?

    我有 64 位 Enterprise SuSE 11 我有一个应用程序 它打开 HIDRAW 设备并在其上操作 ioctl 函数以从该设备获取原始信息 如下所示 struct hidraw devinfo devinfo int fd op
  • 在键盘热插拔上加载模块

    我正在尝试学习如何为 Linux 系统编写模块和驱动程序 类似于this https unix stackexchange com questions 120839 usb kernel module does not load on de
  • 有关 Linux 内存类型的问题

    关于Linux内存我有以下问题 我知道活动内存是最常访问的内存部分 但是有人可以解释一下 linux 如何考虑将内存位置用于活动内存或非活动内存 主动存储器由哪些部分组成 磁盘 文件缓存是否被视为活动内存的一部分 有什么区别Buffers
  • 对 sf:: 的未定义引用

    我想用 C 制作 GUI 应用程序 发现 SFML 是一个不错的选择 幸运的是 我使用的是 Linux 所以 SFML 2 4 已经安装在我的系统上 所以我开始搜索一些教程并找到了一个制作简单窗口的教程 但是当我运行代码时 出现错误 提示未
  • 在 Ubuntu 上纯粹通过 bash 脚本安装 mysql 5.7

    我想要一个无需任何手动输入即可安装 MySQL 5 7 实例的 bash 脚本 我正在关注数字海洋教程 https www digitalocean com community tutorials how to install mysql
  • 将 stdout 作为命令行 util 的文件名传递?

    我正在使用一个命令行实用程序 该实用程序需要传递文件名以将输出写入 例如 foo o output txt 它唯一写入的东西stdout是一条消息 表明它运行成功 我希望能够通过管道传输写入的所有内容output txt到另一个命令行实用程
  • 静态链接共享对象?或者损坏的文件?

    我有一个从专有来源获得的库 我正在尝试链接它 但出现以下错误 libxxx so 文件无法识别 文件格式无法识别 Collect2 ld 返回 1 退出状态 确实 ldd libxxx so statically linked 这究竟意味着
  • gnome-terminal 新选项卡,使用别名作为要执行的命令

    我已经创建了一个别名 bashrc文件如下 alias myproject cd Desktop myproject 当我重新启动终端时保存文件后 输入myproject带我到项目目录 但是当我尝试使用别名作为新的命令参数时gnome te
  • 如何在 Linux 中使用单行命令获取 Java 版本

    我想通过单个命令获取 Linux 中的 Java 版本 我是 awk 的新手 所以我正在尝试类似的事情 java version awk print 3 但这不会返回版本 我将如何获取1 6 0 21从下面的Java版本输出 java ve
  • 使用脚本自动输入 SSH 密码

    我需要创建一个自动向 OpenSSH 输入密码的脚本ssh client 假设我需要通过 SSH 进入myname somehost用密码a1234b 我已经尝试过 bin myssh sh ssh myname somehost a123
  • Windows 与 Linux 文本文件读取

    问题是 我最近从 Windows 切换到 Ubuntu 我的一些用于分析数据文件的 python 脚本给了我错误 我不确定如何正确解决 我当前仪器的数据文件输出如下 Header 有关仪器等的各种信息 Data 状态 代码 温度 字段等 0
  • Linux 中的电源管理通知

    在基于 Linux 的系统中 我们可以使用哪些方法 最简单的方法 来获取电源状态更改的通知 例如 当计算机进入睡眠 休眠状态等时 我需要这个主要是为了在睡眠前保留某些状态 当然 在计算机唤醒后恢复该状态 您只需配置即可获得所有这些事件acp
  • 我应该使用哪个 Linux 发行版作为 Xen 主机? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我为家庭办公室订购了一台服务器 我想用 Xen 对其进行分区 我认为这将使事情保持干净并且更容易维护 我将运行 MySQL PostgreSQL
  • 在 shell 脚本中查找和替换

    是否可以使用 shell 在文件中搜索然后替换值 当我安装服务时 我希望能够在配置文件中搜索变量 然后在该值中替换 插入我自己的设置 当然 您可以使用 sed 或 awk 来完成此操作 sed 示例 sed i s Andrew James
  • “grep -q”的意义是什么

    我正在阅读 grep 手册页 并遇到了 q 选项 它告诉 grep 不向标准输出写入任何内容 如果发现任何匹配 即使检测到错误 也立即以零状态退出 我不明白为什么这可能是理想或有用的行为 在一个程序中 其原因似乎是从标准输入读取 处理 写入
  • Linux 上的 Python 3.6 tkinter 窗口图标错误

    我正在从 Python GUI 编程手册 学习 Python GUI 某项任务要求我通过将以下代码添加到我的配方中来更改窗口图标 Change the main windows icon win iconbitmap r C Python3
  • 如何调用位于其他目录的Makefile?

    我正在尝试这样做 我想打电话给 make Makefile存在于其他目录中 abc可以使用位于不同目录中的 shell 脚本的路径 我该怎么做呢 由于 shell 脚本不允许我cd进入Makefile目录并执行make 我怎样才能编写she

随机推荐