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服务的主要内容,如果未能解决你的问题,请参考以下文章