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