rsync远程同步 :是一个开源的快速备份工具,可以在不同主机之间同步整个目录
在远程同步任务,一个在源端,一个是发起端
源端负责文件的原始位置,发起端和源端的文件同步
rsync的特点
拷贝文件,连接文件、设备
可以保持源文件或者目录的权限不变 时间,软硬连接 所有者 所在组等均可以保持不变
可以实现增量同步,只同步发生变化的数据,数据传输效率很高
支持匿名认证
scp复制
同步方式
1、完整备份,第一次同步都是完整的备份
2、往后的同步,都是增量备份(差异备份),只同步变化的数据。
rsync命令的选项
-r:递归模式,包含子目录里面的所有文件
-l:复制连接文件,软连接
-v:显示同步过程中的详细信息,
-z;传输文件时进行压缩。
-a;归档模式,保留文件的权限,属性等等
-p;保留文件的权限标志(所有者,所在组)
-t;保留时间标记(时间戳)
-g:保留文件的苏在组(管理员)
-H:保留硬链接
-D:保留设备文件和其他特殊文件
--delete:删除目标位置有,但是原始位置没有的文件。
下行同步
从源端同步到客户端
上行同步
从客户端同步到源端
test1 源端
test2 客户端
use chroot = yes
禁锢在源目录
address = 20.0.0.17
设置监听地址
port 873
监听端口
hosts allow = 20.0.0.0/24
指定可以访问服务端的地址
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
上述后缀名为结尾的文件,同步时不在压缩
配置共享模块和目录 用户名和密码
[mha] path = /opt/mha comment = mha read only = yes auth users = backuper secrets file = /etc/rsyncd_users.db
rsync -avz backuper@20.0.0.17::test /opt
rsync:发起同步的命令
-avz:保留文件权限 v显示详细过程 z:同步过程中对文件进行压缩
20.0.0.17::test:模块名称,不是目录名
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576
rsyns同步速度很快,适合同步大文件,可以结合数据库同步使用
inotify通知接口,可以用来监控文件系统的各种变化情况,文件存取,删除移动修改都可以被监控
inotify机制和rsync配合在一块使用,既可以通知变化,也可以实现同步
inotifywait -mrq -e modify,create,move,delete /opt/test/
-m:表示持续监控
-r:递归整个目录
-q:信息提示
-e;指定要监控哪些事件,多个事件用逗号隔开。
rsync -azH --delete --password-file=/etc/server.pass /opt/data/ backuper@20.0.0.17::test/
在文件数量较多的情况下,比如百万或者千万级别的文件,rm -rf *速度很慢
rsync可以实现快速大量删除文件
rsync --delete -before -a -H -v --progress --stats /home/blank/ /opt/test1
--delete-before :在传输的过程中进行删除
-a归档模式
-H硬链接
-v输出过程信息
-progress显示传输过程