一,Rsync简介

Rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步的优秀工具。适用于多种操作平台。

全称是Remote synchronization 具有可使本地和远程的两台主机之间的数据快速复制同步镜像,这个功能类似于ssh的scp命令,但是又优于scp,rsync可以是一个网络服务(port socket)一个rsync相当于scp,cp,rm但是优于他们的每一个命令。

在同步数据时,默认情况下,rsync通过其独特的quick check算法,它仅同步大小或者最后修改时间发生变化的文件或者目录。

rsync特性

二,rsync的工作场景

1,两台服务器之间数据同步

2,对数据服务器做备份或者同步

三,rsync的工作方式

1,本地数据备份,相当于cp rm等

rsync -avz /etc/hosts /tmp/

保存属性复制文件hosts相当于cp命令

新建一个目录为空目录/null

rsync -avz --delete /null/ /tmp/

/tmp/目录保存和/null/目录一样文件全部删除了,相当于rm

2,本地局域网主机互相备份 remote shell

rsync -avzP -e 'ssh -p 22' /tmp/ root@172.16.25.32:/tmp

从本地推向远端服务器

rsync -avzP -e 'ssh -p 22' root@172.16.25.32:/tmp/ /tmp/

从远端服务器拉向本地

出现错误提示rsync error: error in IPC code因为客户端没有安装ssh客户端使用命令yum -y install openssh-clients安装即可

-e 表示后面使用ssh传输

3,通过rsync的daemon

参数-v详细输出模式

-z压缩

-a 归档模式,以递归方式传输文件,并保持所有文件属性

-r对子目录已递归模式

-t保持文件时间信息

-o保持文件属主信息

-g保持文件属组信息

-p 保持文件权限

使用最多就是avz

四,服务端安装配置rsync

1,yum安装rsync

  yum -y install rsync

2,新建配置文件

  /etc/rsyncd.conf

  

#Rsync server
#created by liuyueming : --
##rsyncd.conf start##
uid = rsync #客户端连接过来的用户
gid = rsync
use chroot = no #创建不安全文件漏洞,这里关闭
max connections = #最大连接数
timeout = #超时时间
pid file = /var/run/rsyncd.pid #进程号文件,启动后进程号
lock file = /var/run/rsync.lock #锁定文件
log file = /var/log/rsyncd.log #日志文件
ignore erros #忽略错误
read only = false #可读写
list = false #不能看服务端列表
hosts allow = 172.16.25.0/ #允许主机
hosts deny = 0.0.0.0/ #拒绝主机
auth users = rsync_backup #认证用户,为虚拟用户
secrets file = /etc/rsync.password #认证用户密码文件
################################
[backup]
comment = backup by liuyueming : -- #描述
path = /backup

3,启动

rsync --daemon

使用873端口对外进行服务

4,创建用户

useradd rsync -s /sbin/nologin -M  #不需要登录,不需要家目录

id rsync                      #检查创建用户是否成功

5,创建密码文件

echo "rsync_backup:oldboy">/etc/rsync.password

chmod 600 /etc/rsync.password #设置权限只有root可以读写  不设置成600可能会导致服务不能跑

6,可以加入开机自启动

echo "rsync --daemon" >>/etc/rc.local

五,客户端配置

1,创建本地密码文件

echo "oldboy" >/etc/rsync.password  #只需要密码,不需要用户名

chmod 600 /etc/rsync.password       #必须设置为600否则运行rsync出错

2,同步文件

本地往rsync服务器推送

rsync -avz /tmp/ rsync_backup@172.16.25.32::backup --password-file=/etc/rsync.password

#::后面的backup为服务器端配置文件/etc/rsyncd.conf里面[backup]对应

本地从rsync服务器拉去

rsync -avz rsync_backup@172.16.25.32::backup /tmp/ --password-file=/etc/rsync.password

另外一种写法

把远端文件拿回本地

rsync -avz rsync://rsync_backup@172.16.25.32/backup /tmp/ --password-file=/etc/rsync.password  #换一种写法,效果一样

重启rsync服务

pkill rsync  #关闭rsync服务

kill `cat /var/run/rsyncd.pid`

kill -HUP `cat /var/run/rsyncd.pid`  #加参数平滑杀进程

kill -USR2 `cat /var/run/rsyncd.pid`  #加参数平滑杀进程

六,rsync优点

1,增量备份同步,正常socket(daemon模式),集中备份。最好采用推送而不是抓取方式

七,rsync缺点

1,大量小文件同步的时候,比对时间比较长,有时候会导致rsync进程停止

解决办法:a,打包同步b,drbd(基于文件系统同步复制block)

2,同步大文件,10G这样的大文件有时也会有问题,中断。未完整同步前,是隐藏文件,同步完成为正常文件。

PS:可以启用定时任务实现实时同步,定时任务最小间隔为1分钟,如果需要完全是实时同步需要使用inotify等技术。

Rsync文件同步机备份工具使用的更多相关文章

  1. Linux基础学习-数据备份工具Rsync

    数据备份工具rsync 作为一个系统管理员,数据备份是非常重要的,如果没有做好备份策略,磁盘损坏了,那么你的数据将全部丢失,所以在日常的维护工作中,一定要时刻牢记给数据做备份. rsync不仅可以可以 ...

  2. Linux系统备份还原工具4(rsync/远程数据同步工具)

    rsync即是能备份系统也是数据同步的工具. 在Jenkins上可以使用rsync结合SSH的免密登录做数据同步和分发.这样一来可以达到部署全命令化,不需要依赖任何插件去实现. 命令参考:http:/ ...

  3. Linux Rsync实现文件同步备份(转载)

    原文地址:Linux Rsync实现文件同步备份作者:夷北 转自:http://www.mike.org.cn/blog/index.php?load=read&id=639###pp=0 [ ...

  4. linux下的数据备份工具rsync讲解

    linux下的数据备份工具 rsync(remote sync 远程同步)   名词解释: sync(Synchronize,即“同步”)为UNIX操作系统的标准系统调用,功能为将内核文件系统缓冲区的 ...

  5. Rsync数据备份工具

    Rsync数据备份工具 1.Rsync基本概述 rsync是一款开源的备份工具,可以在不同主机之间进行同步(windows和Linux之间 Mac和 Linux Linux和Linux),可实现全量备 ...

  6. Linux下简单粗暴使用rsync实现文件同步备份【转】

    这篇来说说如何安全的备份,还有一点不同的是上一篇是备份服务器拉取数据,这里要讲的是主服务器如何推送数据实现备份. 一.备份服务器配置rsync文件 vim /etc/rsyncd.conf #工作中指 ...

  7. rsync从linux到linux的文件同步备份

    rsync从linux到linux的文件同步备份 一.环境 需要备份文件的服务器(服务器端):192.168.1.201 (RHEL 5) 接收备份文件的服务器(客户端):192.168.1.202 ...

  8. rsync数据同步备份

    一.rsync简介 (1)rsync是什么? rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具. (2)rsync作用比较 远程拷贝:有点类似ssh的scp ...

  9. Rsync文件同步

    Rsync文件同步 本章结构 关于rsync 1.一款增量备份工具,remote sync,远程同步,支持本地复制或者与其他SSH.rsync主机同步,官方网站:http://rsync.samba. ...

随机推荐

  1. php实现aes加密类

    php实现的aes加密类,代码中有使用方法. <?php //php aes加密类 class AESMcrypt { public $iv = null; public $key = null ...

  2. Atititjs javascript异常处理机制与java异常的转换.js exception process

    Atititjs javascript异常处理机制与java异常的转换.js exception process 1. javascript异常处理机制 Throw str Not throw err ...

  3. MySQL编程API

    1.MySQL API数据结构 MySQL API中用到了很多结构体类型,下面就简单说一下常用的结构体. MYSQL 连接数据库前,必须先创建MYSQL变量,此变量在很多MySQL API函数中会用到 ...

  4. Django REST framework 知识点总结

    一.安装DjangoREST framework #先安装Django #安装必要的包 pip install djangorestframework coreapi (1.32.0+) - Sche ...

  5. a标签去掉下划线

    转载自:http://jingyan.baidu.com/article/a17d52853095838099c8f24e.html <a>是默认有下划线的.所以有时候为了美观,我们需要去 ...

  6. JavaScript 框架 jQuery 的下载和安装

    jQuery 简介: jQuery 是一个 JavaScript 库. jQuery 极大地简化了 JavaScript 编程. jQuery 很容易学习. jQuery 下载: // 官网: htt ...

  7. STM32F1_常见外设资源汇总

    前言 STM32F1系列芯片算是在STM32中最早的一系列,在实际生活中应用的比较广泛.因此,汇总一下STM32F1系列芯片常见片内资源,每一篇文章把重点提出来讲解,并提供软件源代码工程. 汇总常见资 ...

  8. SQL语句字符串处理大全

    常用的字符串函数有: 一.字符转换函数 1.ASCII() 返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用 ...

  9. java 包 和 物理目录 解惑

    今天做 JUnit 实验, 发现在物理实际不同的目录(src, testsrc)下可以使用相同的包名, 并且在这两个目录下, 都有个子目录 coolUnit (这个子目录是配合 package 使用的 ...

  10. kettle利用触发器实现数据同步

    2016年8月17日 一.目的 通过触发器实现数据同步二.思路 1.在数据库需要同步的源表中建立一个insert触发器,当有新数据插入时,会自动将新插入数据的主键记录到临时表temp中.(当然也可以记 ...