文档章节

系统文件备份,rsync

胡子叭槎
 胡子叭槎
发布于 2016/11/15 22:09
字数 1711
阅读 36
收藏 0
点赞 0
评论 0

1 安装备份工具软件 rsync

    [root@myvm soft]# yum install rsync.x86_64

 2 工作模式

    shell模式:就是执行指令,也叫本地模式
            远程shell模式,可以利用ssh协议作为数据传输的承载
            列表模式:仅仅列出源的内容 -nv
            服务器模式:rsync作为一个守护进程,可以接收客户端的数据传输请求,可以进行数据的获取和上载

参数:
                -n:测试模式对于命令的执行效果不缺定一定要使用此参数进行测试之后,在运行
                -v:显示详细过程信息
                -r:递归
                -q:静默模式
                -c:checksum文件校验
                -a:归档,保留文件属性
                -p:保留权限
                -t:保留时间戳
                -l:保留符号链接
                -g:保留属组
                -o:保留属主
                -D:保留设备文件
                -e ssh:使用ssh歇息作承载数据传输
                -z:压缩传输数据
                --progress:显示进度
                --stats:显示状态

                --exclude --exclude="filename|dirname"
                          --exclude="*.txt"
                          排除此指定内容之外的文件或目录都同步过去
                --delete 
                    保证源目录和目的目录里面内容的一致性,如果目的目录中自己多添加了会被删除


                rsync etc user@host:dst -rv
                rsync etc/ user@host:dst -rv
                以上两个指令执行的结果会不一样
                没有加上目录后面的斜线会同步目录本身过去
                加上目录后面的斜线之后会同步目录下面的所有文件或目录

    3 常用备份例子

        常用到的就是服务器模式,需要两台以上的机器,一个做服务器,其他的做客户机。

注意:这里所谓的服务器是只在备份这个动作中作为存储备份脚本的机器,客户机是指被备份的机器

   3.1 设置服务器

        安装软件rsync  xinetd

[root@myvm soft]# yum install rsync.x86_64 xinetd

        配置xinetd 的配置文件

[root@myvm soft]# vim /etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
#       allows crc checksumming etc.
service rsync
{
        disable = no                         # 原来是yes ,改为no
        flags           = IPv6
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}

编写rsync的配置文件

[root@myvm soft]# vim /etc/rsyncd.conf
uid=nobody
gid=nobody
use chroot=no
max connections=5
strict modes=yes
pid file=/var/run/rsyncd.pid
log=/var/log/rsyncd.log
[data]
path=/test                   # 设置自己服务器定共享目录
ignore errors=yes
read only=no
write only=no
hosts allow=192.168.125.0/24  # 设置可以接收客户机定地址或者地址段
hosts deny = * 
list=false
uid=root
gid=root
auth users=tom
secrets file=/etc/rsyncd.passwd 

密码文件
                        vim /etc/rsyncd.passwd
                        tom:123456

守护进程启动
                        /etc/init.d/xinetd restart
                        netstat -anutlp|grep 873

客户端测试

[root@myvm tmp]# rsync -avxzRP /tmp/tmp up14@192.168.1.110::data
Password: 
sending incremental file list
/tmp/
/tmp/tmp/
/tmp/tmp/10.txt
           0 100%    0.00kB/s    0:00:00 (xfer#1, to-check=1/4)

sent 132 bytes  received 35 bytes  47.71 bytes/sec
total size is 0  speedup is 0.00

上面刚刚建的/tmp/tmp/10.txt 推送到服务器上去了

总结:
                rsync -avzP  --delete /tmp/test tom@192.168.242.132::data 拷贝test目录过去
                rsync -avzP  --delete /tmp/test/ tom@192.168.242.132::data 老被test目录下的所有内容 不包含test目录本身
                rsync -avzRP  --delete /tmp/test tom@192.168.242.132::data 会保留tmp/test目

客户端验证:

#客户端推送文件
[root@myvm2 tmp]# rsync -avzRP /tmp wzl@192.168.1.111::data
Password: 
sending incremental file list
/tmp/
/tmp/1.txt
          12 100%    0.00kB/s    0:00:00 (xfer#1, to-check=2/4)
/tmp/yum.log
           0 100%    0.00kB/s    0:00:00 (xfer#2, to-check=1/4)
/tmp/.ICE-unix/

sent 191 bytes  received 54 bytes  70.00 bytes/sec
total size is 12  speedup is 0.05

# 服务端文件检查
[root@myvm test]# ll
total 4
drwxrwxrwt 3 root root 4096 Nov 15 22:29 tmp


 

inotify-tools:
                是为linux下inotify文件监控工具提供的一套c接口的开发接口库函数,同时还提供一些列的命令行工具,这些工具可以用来监控文件系统的事件,只要求linux内核支持inotify,inotifywait监控文件或目录的变化,inotifywatch统计文件访问次数
                ls /proc/sys/fs/inotify
                安装inotify-tools
                下载
                解压inotify-tools-3.14.tar.gz
                tar -xvf inotify-tools-3.14.tar.gz
                cd inotify-tools-3.14
                ./configure --prefix=/usr
                make
                make install

                ln -s /usr/lib/libinotifytools.so.0 /usr/lib64/
                inotifywait
                -h:帮助
                @:排除不需要监视的文件或目录
                -fromfile:从文件中读取需要监视的文件,排除的文件以@开头
                -m:接收到一个事件而不退出,无限期执行,默认是接收到一个事件就退出
                -d:和-m一样,还需要指定-outfile也意味着使用-syslog
                -o:输出事件到一个文件
                -s:输出错误信息到系统日志
                -r:监控目录下所有子目录
                -q:指定一次不会输出详细信息,指定二次除了致命错误不会输出任何信息
                -exclude:正则匹配要排除的文件
                -excludei:正则匹配要排除的文件忽略大小写
                -t:设置超时时间,0表示无限期执行下去
                -e:指定监控事件
                -c:输出csv格式
                -timefmt:时间格式化可以使用-format中%T格式
                -format:
                    %w:表示发生事件的目录
                    %f:表示发生事件的文件
                    %e:表示发生的事件
                    %Xe:事件以X分割
                    %T:-timefmt定义的时间格式

                inotifywatch:
                -h
                @
                -v输出详细信息
                -fromfile
                -z:输出表格的列和行
                -exclude
                -excludei
                -r
                -t
                -e
                -a:指定事件以升序排列
                -d:降序排列
                可监听事件:
                    access
                    modify
                    attrib
                    close_nowrite
                    close
                    open
                    moved_to
                    moved_from
                    move
                    create
                    delete
                    
    要监控/tmp/test目录及其内部所有文件上发生的create,delete,modify,close_write事件,则使用如下命令
    inotifywait -rm --timefmt '%Y-%m-%d %H:%M' --format '%T %w %e %f' -e create,delete,modify,close_write /tmp/test
    inotifywatch -vzr -e create,delete,modify,close_write,access,attrib /tmp/test
    inotifywatch -vzr -t 60 -e create,delete,modify,close_write,access,attrib /tmp/test

通过inotify+rsync进行实时有触发条件的同步
      前提需要安装inotify-tools和rsync的服务器模式
      #!/bin/bash
      #
      #
       
       inotifywait -rm --timefmt '%Y-%m-%d %H:%M' --format '%T %w  %f' -e     create,delete,modify,close_write,attrib /www|while read DATE TIME DIR FILE;do
      FILECHANGE=${DIR}${FILE}
      cd /www/
      rsync -avzRP --delete --progress --stats --password-file=/etc/r    syncd.passwd * --exclude-from="/var/log/rule.txt" tom@192.168.242.132::data &
      echo "at ${TIME} on ${DATE} file $FILECHANGE was backup via rstnc" >> /var/log/rule.txt
      done

    为了让sh inotify.sh一直执行的方式
        supervisor推荐
        screen
        nohup


2.注意备份的时候是否需要打包压缩,是否需要本地异地都有备份,最好给备份文件加上一个标识以便还原的时候方便区分,根据实际情况考虑
编辑shell脚本:


#!/bin/bash
#
#
# emai:18521701110@163.com
# 王紫龙
#
#

 inotifywait -rm --timefmt '%Y-%m-%d %H:%M' --format '%T %w  %f' -e     create,delete,modify,close_write,attrib /www|while read DATE TIME DIR FILE;do
FILECHANGE=${DIR}${FILE}
cd /www/
rsync -avzRP --delete --progress --stats --password-file=/etc/rsyncd.passwd * --exclude-from="/var/log/rule.txt" wzl@192.168.1.111::data &
echo "at ${TIME} on ${DATE} file $FILECHANGE was backup via rstnc" >> /var/log/rule.txt
done

上面脚本中监控/www 目录

如果/www 中有任何变动,则/www目录下的所有文件都听不到服务器共享目录下

 

© 著作权归作者所有

共有 人打赏支持
胡子叭槎
粉丝 21
博文 126
码字总数 132913
作品 0
成都
数据库管理员
一键部署rysnc实现全网备份

需要的工具:ansible 批量管理工具 思路: 实现一键自动化安装好rysnc备份服务器,实现全网备份 rysnc配置文件,是在管理机上,推送到我们的rysnc服务器上的,所以我们可以随时可以在管理机修...

啊凯linux
06/28
0
0
rsync+inotify实现服务器之间文件实时同步

之前做了“ssh信任与scp自动传输脚本”的技术文档,此方案是作为公司里备份的方法,但在实际的运行中,由于主服务器在给备份服务器传输的时候,我们的主服务器需要备份的文件是实时、不停的产...

chaun
2016/04/27
102
0
Rsync+inotify实现文件实时同步

数据备份、文件备份是运维、DBA等岗位最熟悉不过的话题,这里不介绍数据库的备份,简单介绍一下文件同步工具,这样的工具有很多,Windows环境下有Goodsync、FreeFileSync等,Linux下rsync、u...

tianya1993
2017/09/17
0
0
Mac OS X:升级rsync和同步应用实例

Mac OS X:升级rsync到最新版本 Tech Level 3 History: July 17, 2009: 若干处修辞的修改. 添加了和TimeMachine的比较部分. rsync简介 rsync是开放许可GPL开放源码的增量数据传输/同步命令行...

junwong
2012/03/09
0
0
用rsync实现网站镜像和备份

简介   对于选择Linux 作为应用平台的的中小型企业或网站来说,往往面临如何实现数据远程备份或者网站镜象的问题,虽然有商业化的备份和镜象产品可供选择,但这些产品的价格往往过于昂贵。...

刘赤龙
2010/06/08
0
0
linux系统中rsync+inotify实现服务器之间文件实时同步

之前做了“ssh信任与scp自动传输脚本”的技术文档,此方案是作为公司里备份的方法,但在实际的运行中,由于主服务器在给备份服务器传输的时候,我们的主服务器需要备份的文件是实时、不停的产...

lwaif
2016/03/01
20
0
centos debian linux rsync数据同步

一、系统环境 本文服务器系统环境是:CentOS5.5,备份机系统环境是:Debian 2.6.32-5-amd64。 二、rsync的下载与安装 目前大部分Unix/Linux默认即安装了rsync。 三、服务端rsync的配置 rsyn...

njcto
2013/12/06
0
0
linux学习笔记-rsync原理及使用

rsync的原理及使用 第1章 rsync原理及介绍 1.1什么是rsync Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。Rstync软件适用于unix/linux/window...

呀哈喽
2017/11/04
0
0
利用ssh+rsync+inotify实现数据的异地实时同步

在服务器中,通常结合计划任务、shell脚本来执行本地备份。为了进一步提高备份的可靠性,使用异地备份也是非常重要的,利用rsync工具,可以实现快速、高效的异地备份。本篇博客将配置rsync+c...

杨书凡
01/09
0
0
CentOS下(rsync+inotify)监听式实现服务器间备份的实时同步

背景 前几天,整理了一篇 (rsync+crontab) 实现文件同步的文章,不过从网上得知,网上很多言论认为在优势上不如监听实现的效果,所以在此进行新的配置尝试,同时建议可以对比两篇文章进行参考...

moTzxx
2017/12/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

about git flow

  昨天元芳做了git分支管理规范的分享,为了拓展大家关于git分支的认知,这里我特意再分享这两个关于git flow的链接,大家可以看一下。 Git 工作流程 Git分支管理策略   git flow本质上是...

qwfys
今天
1
0
Linux系统日志文件

/var/log/messages linux系统总日志 /etc/logrotate.conf 日志切割配置文件 参考https://my.oschina.net/u/2000675/blog/908189 dmesg命令 dmesg’命令显示linux内核的环形缓冲区信息,我们可...

chencheng-linux
今天
1
0
MacOS下给树莓派安装Raspbian系统

下载镜像 前往 树莓派官网 下载镜像。 点击 最新版Raspbian 下载最新版镜像。 下载后请,通过 访达 双击解压,或通过 unzip 命令解压。 检查下载的文件 ls -lh -rw-r--r-- 1 dingdayu s...

dingdayu
今天
0
0
spring boot使用通用mapper(tk.mapper) ,id自增和回显等问题

最近项目使用到tk.mapper设置id自增,数据库是mysql。在使用通用mapper主键生成过程中有一些问题,在总结一下。 1、UUID生成方式-字符串主键 在主键上增加注解 @Id @GeneratedValue...

北岩
今天
2
0
告警系统邮件引擎、运行告警系统

告警系统邮件引擎 cd mail vim mail.py #!/usr/bin/env python#-*- coding: UTF-8 -*-import os,sysreload(sys)sys.setdefaultencoding('utf8')import getoptimport smtplibfr......

Zhouliang6
今天
0
0
Java工具类—随机数

Java中常用的生成随机数有Math.random()方法及java.util.Random类.但他们生成的随机数都是伪随机的. Math.radom()方法 在jdk1.8的Math类中可以看到,Math.random()方法实际上就是调用Random类...

PrivateO2
今天
2
0
关于java内存模型、并发编程的好文

Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在...

DannyCoder
昨天
0
0
dubbo @Reference retries 重试次数 一个坑

在代码一中设置 成retries=0,也就是调用超时不用重试,结果DEBUG的时候总是重试,不是0吗,0就不用重试啊。为什么还是调用了多次呢? 结果在网上看到 这篇文章才明白 https://www.cnblogs....

奋斗的小牛
昨天
2
0
数据结构与算法3

要抓紧喽~~~~~~~放羊的孩纸回来喽 LowArray类和LowArrayApp类 程序将一个普通的Java数组封装在LowArray类中。类中的数组隐藏了起来,它是私有的,所以只有类自己的方法才能访问他。 LowArray...

沉迷于编程的小菜菜
昨天
1
0
spring boot应用测试框架介绍

一、spring boot应用测试存在的问题 官方提供的测试框架spring-boot-test-starter,虽然提供了很多功能(junit、spring test、assertj、hamcrest、mockito、jsonassert、jsonpath),但是在数...

yangjianzhou
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部