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...] [USER@]HOST:SRC... [DEST]

    Push: rsync [OPTION...] SRC... [USER@]HOST:DEST

    pull方式语法说明:

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

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

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

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

  rsync -r /null --delete DEST

rsync守护进程模式   1.命令语法

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

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

Push: rsync [OPTION...] SRC... [USER@]HOST::DEST [USER@]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 rsync_backup@HOST::backup --password-file=/etc/rsync.password

    rsync -avz rsync://rsync_backup@HOST[:Port]SRC DEST --password-file=/etc/rsync.password

rsync其他功能   1)同步功能

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

  2)传输限速

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

rsync -avz /test_dir/ --bwlimit=200 rsync_backup@HOST::backup --password-file=/etc/rsync.password 注:bwlimit单位是kbites   3)排除功能

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

rsync -avz /etc/ --exclude=/etc/sysconfig/ rsync_backup@HOST::backup --/etc/rsync.password rsync -avz /etc/ --exclude-from=/root/file1 rsync_backup@HOST::backup --/etc/rsync.password