rxync是一个开源的快速备份的工具,可以在不同主机之间同步整个目录
在远程同步中,一个是源端,一个是发起端
远端负责文件的起始位置,发起端和源端的文件同步
rsync功能:①拷贝文件;②连接文件、设备;③可以保持源文件或者目录的权限不变(包括时间、软硬连接、所在组、所有者、属性等均可以保持不变);④可以实现增量同步,只同步发生变化的数据,传输效率很高;⑤支持匿名认证
同步方式
1、完整备份。第一次同步都是完整备份
2、增量备份/差异备份。第二次开始都是增量备份,只同步变化的数据
rsync常用的命令选项
rsync -r 递归模式(目录包含子目录里面的所有文件)
rsync -l(小写的L) 复制链接文件,软连接
rsync -v(小写v) 显示同步过程中的详细信息
-z(小写z) 传输文件时,进行压缩
-a 归档模式,保留文件的权限、属性等
-p(小写p) 保留文件权限标记(所有者和所在组)
-t 保留时间标记(时间戳)
-g 保留文件的所在组(必须要是管理员)
-o(小写o) 保留文件所有者同上)
-H 保留硬链接
-D 保留设备文件和其他特殊文件
--delete 删除目标位置有但是原始位置没有的文件
下行同步:从源端同步到客户端
上行同步:从客户端同步到源端
源端:80
发起端:90
# /etc/rsyncd: configuration file for rsync daemon mode
# See rsyncd.conf man page for more options.
# configuration example:
uid = root
gid = root
use chroot = yes
address = 192.168.233.80
#设置监听地址
port 873
#监听端口
log file = /var/log/rsyncd.log
# max connections = 4
pid file = /var/run/rsyncd.pid
hosts allow = 192.168.233.0/24
#指定可以访问服务端的地址
# exclude = lost+found/
# transfer logging = yes
# timeout = 900
# ignore nonreadable = yes
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
#以上面后缀名为结尾的文件,同步时不压缩
#以下配置共享目录、模块、用户名、密码等
[test]
path = /opt/test
comment = test
read only = yes
auth users = fmh
secrets file = /etc/rsyncd_users.db
关闭rsync服务
kill -9 进程号
下行实验
#监控事件队列
#最多监控的实例
#每个实例最多监控的文件
进入内核文件修改
立刻生效
rsync同步速度很快,适合同步大文件,可以结合数据库同步使用。
cd inotify-tools-3.14
./configure
make && make install
inotify通知接口,可以用来监控文件系统的各种变化情况,文件存取,删除 移动 修改都可以被监控
inotify机制和rsync配合使用。既可以通知变化,也可以实现同步。
rsync -azH --delete --password-file=/etc/server.pass /opt/data [email protected].70:test/
在文件数量较多的情况下,比如百万和千万级别的文件,rmm -rf*速度很慢
rsync可以实现快速删除大量文件
rsync --delete-before -a -H -v --progress --stats /home/blank/ /opt/test1
touch 123
rsync --delete-before -a -H -v --progress --stats /home/blank/ /opt/test1