linux svn 备份脚本,SVN热备份脚本

SVN热备份脚本

2011-08-03  徐磊

#!/bin/sh

#########################################################

# Script to do incremental rsync backups

# modidfy: wanjie.info

# date: 2010/06/04

# 这个脚本不是xulei写的,我只是拿来主义,当然如果大家看不明白,可以提问,给予解释

#########################################################

###################################

# svn backup log path

#  - This is used to log result

###################################

LogFile=~/tmp/svnbackup/svnback.log

DATE=`date +%Y%m%d`

###################################

# mail address for status updates

#  - This is used to email you a status report

###################################

MAILADDR=webmaster@wanjie.info

###################################

# HOSTNAME and project list

#  - This is also used for reporting

###################################

ProjectLst=~/tmp/svnbackup/projectlist.txt

###################################

# backup directory

# - This is the path to the backup directory

###################################

BackDir=~/tmp/svnbackup/$DATE

BACKUPDIR=~/tmp/svnbackup/$DATE

###################################

# svn directory

# - This is the path to the directory you want to archive

###################################

SVNDIR=~/svn

###################################

# svnadmin path

# - This is the path to the directory you want to archive

###################################

SVNADMIN=/usr/bin/svnadmin

export PATH=$PATH:/bin:/usr/bin:/usr/local/bin

# our actual rsyncing function

# 这个函数主要是在备份日志里面打上时间,用了个前面date命令获取到的日期

do_accounting()

{

echo " " >> $LogFile

echo " " >> $LogFile

echo "###########################" >> $LogFile

echo "$DATE" >> $LogFile

echo "###########################" >> $LogFile

cd $BackDir

}

# do_svndump就是这个脚本最主要的部分,通过使用svnadmin dump命令

# 来进行备份。对于SVN的Repository来说,不同数据仓储是按文件夹的形式

# 进行管理的,备份出来的是xxx.dump,这个文件是相当有用处的,无论你是

# 在linux下恢复配置库,还是windows下恢复都可以使用。脚本里面决定是否进行

# 新的备份,是通过xxx.youngest的日志文件的内容来判断的。

do_svndump()

{

PROJECTLIST=`cat $ProjectLst`

cd $SVNDIR

for project in $PROJECTLIST

do

echo "begin to dump $project databases" >> $LogFile

if [ ! -f $BACKUPDIR/$project.dump ]

then

YOUNGEST=`svnlook youngest $project`

svnadmin dump $project > $BACKUPDIR/$project.dump

echo "OK,dump file successfully!!"

echo "$YOUNGEST" > $BACKUPDIR/$project.youngest

else

echo "$project.dump existed,will do increatment job" >> $LogFile

if [ ! -f $BACKUPDIR/$project.youngest ]

then

echo "error, no youngest check!" >> $LogFile

else

PREVYOUNGEST=`cat $BACKUPDIR/$project.youngest`

NEWYOUNGEST=`svnlook youngest $project`

if [ $PREVYOUNGEST -eq $NEWYOUNGEST ]

then

echo " no database updated!" >> $LogFile

else

LASTYOUNGEST=`expr $PREVYOUNGEST + 1`

echo "last youngest is $LASTYOUNGEST" >> $LogFile

svnadmin dump $project --revision $LASTYOUNGEST:$NEWYOUNGEST --incremental > $BACKUPDIR/$project-$LASTYOUNGET-$NEWYOUNGEST.$DATE

echo "$NEWYOUNGEST" > $BACKUPDIR/$project.youngest

fi

fi

fi

done

}

# our post rsync accounting function

# 这个就是把你日志文件的内容当做邮件发送

do_mail()

{

mail $MAILADDR -s svn-back_log < $LogFile

}

# some error handling and/or run our backup and accounting

do_accounting && do_svndump && do_mail

-------------------------------------------------------------------------------------------------------

这个是比较麻烦的,要是想简单,可以直接hotcopy之后,然后就tar压缩,不用dump备份,因为dump是相当的花时间的。要是天天都备份的话,就很悲剧。

脚本的衍生就是,你可以把你备份出来的东西放置该机器的ftp上,然后再用其他的机器通过脚本,拷走配置库的备份,因为谁都不知道svn服务器是不是会down掉,要是down掉了,一旦你的备份又是在svn服务器上,那就白备份了。

0

该文章对我有帮助

359°|3568 人阅读|3

条评论

b11063a9e6c7d72d354f4047630e4d97.png

金鑫  2011-08-03

要是在配合 注释 就完美了  呵呵

cf43af3bbf389cd35a8b9b6a6ddd8254.png

徐磊  2011-08-03

金鑫: 要是在配合 注释 就完美了  呵呵ok 没问题 重新编辑下

46fce0f6e62927f883752e07a9149682.png

刘旸  2011-08-15

呵呵,还以为是keepalived的脚本呢

请 登录 后发表评论

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531925.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 关闭scp服务器,Linux系统如何关闭scp和sftp命令

Linux系统如何关闭scp和sftp命令。sftp介绍sftp是Secure File Transfer Protocol的缩写&#xff0c;安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp 与 ftp 有着几乎一样的语法和功能scp介绍两台主机之间传输文件一般使用scp命令,通常用scp命令通过ssh获取对方…

linux db2 归档,DB2的归档模式设置方法

当做在线备份&#xff0c;即加上online参数后&#xff0c;可以看到如下告警&#xff1a;[db2inst1localhost backup]$ db2 backup db sample online to /dev/nullSQL2413N Online backup is not allowed because the database is not recoverableor a backup pending condition…

css提取页面元素唯一性_下面这个函数,能够获取一个元素的任意 CSS 属性值。...

在对网页进行调试的过程中&#xff0c;经常会用到js来获取元素的CSS样式&#xff0c;方法有很多很多&#xff0c;现在仅把我经常用的方法总结如下&#xff1a;1. obj.style&#xff1a;这个方法只能JS只能获取写在html标签中的写在style属性中的值(style”…”)&#xff0c;而无…

linux+cp+-rdf,简单构建基于RDF和SPARQL的KBQA(知识图谱问答系统)

本文主要通过python实例讲解基于RDF和SPARQL的KBQA系统的构建。该项目可在python2和python3上运行通过。注&#xff1a;KBQA即是我们通常所说的基于知识图谱的问答系统。这里简单构建的EasyKBQA&#xff0c;数据来源于网络&#xff0c;源码地址看下面补充说明。目录&#xff1a…

变形监测期末复习_寒假即将来临,中小学期末考试时间是什么时候?

2019年下学期也快结束&#xff0c;各个区的中小学考试时间安排已经公布了。今年&#xff0c;初二将首次进行全市统考&#xff0c;统考的意义重大&#xff0c;希望家长们可以督促孩子们重视起来&#xff0c;考出好成绩!下面&#xff0c;让我们来看一下2019下学期深圳各区中小学期…

为什叫c语言,为什么c语言叫c语言?

1972年&#xff0c;美国贝尔实验室的 D.M.Ritchie 在B语言的基础上最终设计出了一种新的语言&#xff0c;他取了BCPL的第二个字母作为这种语言的名字&#xff0c;这就是C语言。1973年初&#xff0c;C语言的主体完成。Thompson和Ritchie用它完全重写了UNIX。随着UNIX的发展&…

gddr6速率_Rambus展示18GT/s的GDDR6内存子系统:高频信号纯净度仍然非常好

Rambus最近展示了他们最新的GDDR6内存子系统&#xff0c;把传输速率提升到了18GT/s&#xff0c;而目前的市场上的GDDR6显存多为14GT/s&#xff0c;少数为16GT/s&#xff0c;18GT/s对于Rambus和GDDR6来说都是一个新的记录。在18GT/s的传输速率下&#xff0c;单颗位宽为32-bit的G…

株洲c语言培训机构,株洲好就业的学c语言程序设计,计算机专业地址

株洲好就业的学c语言程序设计衡阳市潇湘职业中等专业学校是由衡阳市教育主管&#xff0c;在衡阳校区的基础上设置的一所综合性全日制中等职业学校。坐落在国内优秀旅游城市、国内高新技术产业基地、名人辈出的全国历史文化名城-----衡阳市。我校依托长沙医校院&#xff0c;实现…

er图外键怎么表示_本周话题:取消考研复试最能实现相对公平?你怎么看?

2020取消研究生复试的呼声越来越高&#xff1f;考研er们&#xff1a;压力太大&#xff01;近日&#xff0c;红网作者李诗元的一篇《取消考研复试最能实现相对公平》引起热议国家线的出台和调剂系统5月20日的才开的通知让大家直接炸开了郭就山西大学来说 往年都是调剂生和一志愿…

append 后如何删除_如何在STATA中合并数据文件呢?

❝作者&#xff1a;江小白邮箱&#xff1a;jieresearch163.com❞我们在使用stata进行数据分析时&#xff0c;可能涉及多个数据文档的合并操作或者同时使用不同数据集中的多个变量&#xff0c;这都需要我们进行文档间不同变量的归并。例如&#xff0c;我们需要使用CFPS(中国家庭…

linux 内网怎么安装git环境_linux 安装go环境

官网下载安装包The Go Programming Language​golang.google.cngo1.4.linux-amd64.tar.gz解压&#xff1a;tar -C /usr/local -zxvf go1.4.linux-amd64.tar.gz添加环境变量&#xff1a;export PATH$PATH:/usr/local/go/bin安装完成输入go测试安装成功&#xff0c;写个简单的代码…

cups支持的打印机列表_Win10“Microsoft Print to PDF”虚拟打印机不见了,如何找回?...

MS酋长很早以前在介绍Windows10的新功能时&#xff0c;就提到过《Win10原生支持把文件转换成PDF格式》&#xff0c;该功能实际上是基于“Microsoft Print to PDF”虚拟打印机来实现的。当你点击打印时&#xff0c;在打印机列表中就可以看到“Microsoft Print to PDF”虚拟打印机…

循环队列的进队算法c语言,循环队列的定义,入队算法,出队算法,遍历算法,及其代码实现-Go语言中文社区...

队列 的定义&#xff1a;一种可以是实现“先进先出”的存储结构。数据的进出类似于排队购票。队只允许队尾一端(rear)添加&#xff0c;在另一端队头(front)删除。队有队头(front)和队尾(rear)两个指针。队头front指向第一个元素&#xff0c;队尾rear指向无实际意义的元素&#…

java office文件加水印_文档预览加水印——或可一用的防泄密方式

给文件加水印是常见的一种宣示版权的方式。像Office、WPS都自带加水印功能&#xff0c;能够给文档加上"保密"、"严禁复制"这样的水印。在多可系统中&#xff0c;也有这么一个添加水印的功能。启用该功能后&#xff0c;在使用HTML5预览时&#xff0c;多可系…

android 获取apk资源,android-apk-parser

APK解析库用于读取/解析 packageName。versionName。versionCode信息的简单类&#xff0c;以及已经编译的androidsdk文件中的更多内容。通过解压 AndroidManifest.xml 文件并解码编译好的XML二进制文件来收集这里信息&#xff0c;就可以实现。我一直在用它来实现各种android工件…

apache license 2.0如何使用防止法律纠纷_go语言使用Swaggo详细教程

相信很多程序猿和我一样不喜欢写API文档。写代码多舒服&#xff0c;写文档不仅要花费大量的时间&#xff0c;有时候还不能做到面面具全。但API文档是必不可少的&#xff0c;相信其重要性就不用我说了&#xff0c;一份含糊的文档甚至能让前后端人员打起来。 而今天这篇博客介绍的…

android执行main函数,AndroidStudio执行main方法报错

问题&#xff1a;有时在开发中想直接写一个java文件来测试一些东西&#xff0c;但是AndroidStudio执行的时候会报错。代码信息&#xff1a;public class HelloWorld {public static void main(String[] args) {System.out.println("HelloWorld");}}报错信息12:04:41:…

hive 导出json格式 文件_Hive 系列 之 基本操作合集

下面是本课程概览&#xff1a;&#xff08;1&#xff09;hive系列之简介&#xff0c;安装&#xff0c;beeline和hiveserver2&#xff08;2&#xff09;hive系列之基本操作&#xff08;3&#xff09;hive系列之udf&#xff08;4&#xff09;hive系列之二级分区和动态分区&#x…

android开发自定义view倍丝曲线,从0到1Android自定义View(四)贝塞尔曲线

原标题&#xff1a;从0到1Android自定义View(四)贝塞尔曲线2017年安卓巴士全球开发者论坛-上海站作者本文由两点水投稿&#xff0c;博客地址&#xff1a;http://www.apkbus.com/myspaceblog-911082.html前言扯来扯去&#xff0c;前面三篇自定义 View 文章&#xff0c;终于扯完了…

ios kvo 要引入_腾讯社招iOS面试记录

毕业好几年了&#xff0c;上周发送了简历给腾讯&#xff0c;参加了腾讯面试。具体部门这边就不说了。这次面试还是收获到了很多。一面电话面试&#xff1a;面试官主要是针对iOS相关的基础问题。先简单自我介绍一下自己对mrc和arc的理解谈谈对自动释放池的理解自动释放池在mrc和…