免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1427 | 回复: 7
打印 上一主题 下一主题

[系统管理] 关于rsync远程备份的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-07-29 09:38 |只看该作者 |倒序浏览
服务器:/share       发布版本的地方
客户端:/back        备份版本的地方

现在领导要求当share文件夹下面的文件发生变化时、客户端这边要把share下面的所以文件都打包成一个独立文件,后缀以日期显示、或者把share下面的文件
备份到客户端的back目录下的新目录下、目录后缀以日期方式显示、

简单的来说就是、当服务器share发生变化时、客户端要把share下面的文件整体备份一下、每一次变化都是一个新版本、而不是增量备份、

rsync的--backup-dir参数好像只能备份发生变化的文件、也可能是我测试有问题、

求大神帮忙、看看rsync该怎么实现上述功能、如果有其他思路的话、也可以提出来下、谢谢大家。。。。

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-08-04 06:20:00
2 [报告]
发表于 2015-07-29 19:20 |只看该作者
  1. #!/bin/sh

  2. local_lastver="/backup/lastver"
  3. server="192.168.0.x"
  4. server_src="src"

  5. user="rsyncUserName"
  6. password_file="/backup/rsync.passwd"

  7. _bakdir=_bak/$(date +%Y%m%d)
  8. local_newver=/backup/$(date +%Y%m%d)

  9. rsync -aqbR --delete --backup-dir=$_bakdir --password-file=$password_file $user@$server::$server_src/* $local_lastver

  10. if [ -d $_bakdir ]
  11. then
  12.   cp -a $local_lastver $local_newver
  13. fi
复制代码

论坛徽章:
0
3 [报告]
发表于 2015-08-02 00:35 |只看该作者
回复 2# 信天翁


        非常感谢您的回复,刚才我仔细的看了看,并思考下,由于现在环境所限,没有办法测试,我的理解是这样的

假如目标文件夹下有a b c三个文件,第一次同步后本地备份目录里也有会同样的三个文件,当目标主机b发生变化后,
脚本执行后是的变化是,新建一个$_bakdir,用于备份老的“b”文件,而原来指定的备份目录 $local_lastver里面是a 变化后的“b” c三个文件
然后判断$_bakdir是否存在,如果存在就说明目标主机有变化,那个就把$local_lastver完成的备份到$local_newver,

不知到理解的是否正确,还有就是目标版本变化不止一次,也就是说是不是还需要在最后cp -a $local_lastver $local_newver 备份完后在加上
rm -rf $_bakdir这句呢?

还有 --delete 这句大概意思很模糊,能否解释下?  纯属个人理解,还请指教。。。

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-08-04 06:20:00
4 [报告]
发表于 2015-08-02 15:05 |只看该作者
本帖最后由 信天翁 于 2015-08-02 15:07 编辑

理解正确

不用删除上次备份
local_newver=/backup/$(date +%Y%m%d)  格式是/backup/20150801 这是每天备份一次的情况
如果每天多次备份可以让备份目录名和新版本目录名加上时分秒信息
  _bakdir=_bak/$(date +%Y%m%d_%H%M%S)
  local_newver=/backup/$(date +%Y%m%d_%H%M%S)

另外
--delete  是远程目录文件被删除后同步到本地时删除本地旧文件

论坛徽章:
0
5 [报告]
发表于 2015-08-02 16:00 |只看该作者
回复 4# 信天翁


    非常感谢,看来有时候还是思路的问题啊,学习啦

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-08-04 06:20:00
6 [报告]
发表于 2015-08-05 09:37 |只看该作者
上面脚本我也没做测试,又看了一下发现有问题,其中的$_bakdir没有使用绝对路径,改绝对路径就可以了
  _bakdir=/backup/_bak/$(date +%Y%m%d_%H%M%S)

论坛徽章:
0
7 [报告]
发表于 2015-08-05 10:04 |只看该作者
回复 6# 信天翁


    向有责任、有爱心,细心的人致敬

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
8 [报告]
发表于 2015-08-05 13:32 |只看该作者
还用增量备份到客户机,然后在客户机上打包压缩应该就可以了。关键问题是服务器更新之后怎么通知客户机
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP