Rsync服务

Posted dreamfuture

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rsync服务相关的知识,希望对你有一定的参考价值。

  rysnc官网https://rsync.samba.org/

  rsync是一款远程复制同步的应用软件,它使用差分编码,可以实现增量备份,减少数据传输量。

  • 算法

    rsync传输文件时,它会比对源端和目标端文件,只传递有差异的部分,这就是所谓的增量备份,具体实现办法是利用特殊的算法实现的。简单来说,首先它会对远端和目标端的文件切割成多段,然后对每段数据进行两种效验,一个是弱效验,叫作rolling checksum,采用Mark Adler发明的adler-32算法;另一个是强效验,叫作checksum,现在采用md5 hash算法。当传输文件前,源端和目标端会先进行效验比对,一般是弱的checksum是用来区别不同,而强的是用来确认相同,不同的部分才会传输,从而实现增量传输。

  • rsync命令使用

  ①. 本地复制 rsync == cp 

    Local:  rsync [OPTION...] SRC... [DEST]

 

    rsync --- 数据备份传输命令
    option --- 可以输入一下和rsync传输数据有关的参数
    src --- 要进行备份的数据(文件/目录)
    dest --- 将数据信息备份到什么位置(相应路径中)

 

  ②. 远程模式 rsync == scp

    Pull: rsync [OPTION...] [[email protected]]HOST:SRC... [DEST]

    Push: rsync [OPTION...] SRC... [[email protected]]HOST:DEST

    pull方式语法说明:

     rsync --- 数据备份传输命令

     option --- 可以输入一下和rsync传输数据有关的参数  
     [[email protected]]HOST: --- 需要指定以什么用户身份登录到远程主机,
     如果省略USER信息,表示以当前用户身份进行登录
     登录主机地址或域名信息
     SRC --- 指定远程主机要传输过来到本地的数据信息
     dest --- 将数据保存到本地的什么路径中
     push方式语法说明:
       rsync --- 数据备份传输命令
       option --- 可以输入一下和rsync传输数据有关的参数
       [[email protected]]HOST: --- 需要指定以什么用户身份登录到远程主机,
       如果省略USER信息,表示以当前用户身份进行登录
       登录主机地址或域名信息
       SRC --- 指定本地主机要传输到远程主机的数据
       dest --- 将本地数据保存到远端的什么路径中

 

  ③ 删除同步端文件 rsync == rm

  说明:rsync实现删除目录中数据内容过程,就将一个空目录和一个有数据的目录进行同步最终,会将有数据的目录中的文件进行清空

  rsync -r /null --delete DEST

  • rsync守护进程模式

  1.命令语法

 

Access via rsync daemon:
Pull: rsync [OPTION...] [[email protected]]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[[email protected]]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [[email protected]]HOST::DEST
rsync [OPTION...] SRC... rsync://[[email protected]]HOST[:PORT]/DEST

pull:rsync [OPTION...] [[email protected]]HOST::SRC... [DEST]
[[email protected]]HOST:: --- 指定远程连接的认证用户
SRC --- 指定相应的模块信息
[DEST] --- 将远程数据保存到本地的路径信息

 

Push: rsync [OPTION...] SRC... [[email protected]]HOST::DEST
[[email protected]]HOST:: --- 指定远程连接的认证用户
SRC --- 指定本地要进行推送的数据信息
[DEST] --- 远程进行保存数据的模块信息

 

2.rsync守护模式部署

1)服务端

  ①.查看或者安装rsync软件包    

rpm -qa rsync
yum install rsync -y

 

  ②.创建rsyncd.conf配置文件

 

vim /etc/rsyncd.conf
#rsync_config
##rsyncd.conf start##
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
comment = "backup data"
path = /backup

 

    ③.创建备份目录和密码文件

useradd rsync -s /sbin/nologin -M
mkdir /backup -p
chown rsync.rsync /backup -R
echo "rsync_backup:123456" >/etc/rsync.password
chmod 600 /etc/rsync.password

     服务端配置完毕,重启rsync服务即可

killall rsync
rsync --daemon

  2)客户端配置

    ①.查看或者安装rsync软件包

rpm -qa rsync
yum install rsync -y

    ②.创建密码文件

 

 

echo "123456" >/etc/rsync.password  #密码文件可以任意位置任意命名,内容是服务端中的密码
chmod 600  /etc/rsync.password    

 

     客户端配置完毕

  3)测试

    rsync -avz SRC [email protected]::backup --password-file=/etc/rsync.password

    rsync -avz  rsync://[email protected][:Port]SRC DEST --password-file=/etc/rsync.password

  •  rsync其他功能

  1)同步功能

  利用--delete参数可以实现服务器和远端存储某个目录实现数据同步功能,通常可以利用脚本或者和其他软件配合实现实时同步功能,具体使用方法参考inotify服务。

  2)传输限速

  利用--bwlimit参数,命令如下:

rsync -avz /test_dir/ --bwlimit=200  [email protected]::backup --password-file=/etc/rsync.password
注:bwlimit单位是kbites

  3)排除功能

  利用--exclude参数,用法和tar排除功能类似,命令如下:

rsync -avz /etc/ --exclude=/etc/sysconfig/ [email protected]::backup --/etc/rsync.password
rsync -avz /etc/ --exclude-from=/root/file1 [email protected]::backup --/etc/rsync.password

  

 

以上是关于Rsync服务的主要内容,如果未能解决你的问题,请参考以下文章

Rsync

rsync实现数据同步

Rsync:非常实用的同步文件命令。

rsync

rsync nfs 实时同步,结合实战

双台服务器rsync同步报错(code 5) at main.c(1503) [sender=3.0.6]