syncrsync

Posted skyzy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了syncrsync相关的知识,希望对你有一定的参考价值。

sync:同步 async:异步 rsync:远程同步 数据同步方式: 1、rsync 2、共享存储 3、云存储 rsync: 1、 2、 3、软件三步曲 # rpm -ql rsync /etc/xinetd.d/rsync 子配置文件 /usr/bin/rsync 二进制命令 4、了解配置文件 5、需求:rsync不作为一个服务使用,只是用rsync命令来同步数据 rsync — a fast, versatile, remote (and local) file-copying tool -a:归档拷贝 等于 -rlptgoD (no -H,-A,-X) -r:递归拷贝目录 -l:保留软连接 -p:保留权限信息 -t:保留修改时间 -g:保留属组 -o:保留属主 -D:表示支持b,c,s,p类型文件 -R:保留相对路径 -H:保留硬链接 -A:保留acl策略 -e:指定执行shell命令 -E:保留可执行权限 -X:保留扩展属性 a属性 demo1:本地同步 rsync -av /dir1 /dir2/ ——> /dir1 同步过去后将保留源目录的目录 rsync -av /dir1/ /dir2/ ——> /dir1/ 同步过去后不保留源目录的目录 rsync -Rav /dir1/ /dir2/ ——> -R 不管有没有“/”都会保留源目录 demo2:远程同步 vm1:/dir1 vm2: /dir2 从本地将文件同步到远程 # rsync -av /dir1/ 10.1.1.2:/dir2/ # rsync -Rav /dir1 10.1.1.2:/dir2/ 从远程将文件同步到本地 # rsync -av 10.1.1.1:/dir1 /dir2 # rsync -av /dir1/ [email protected]:/dir2/ # rsync -av /dir1/ -e ‘ssh -p10022 -lstu1‘ 10.1.1.2:/dir2 rsync:作为服务去运行 tcp 873 demo3:只允许10.1.1.2主机在指定的时间内同步数据 思路: 1、rsync作为服务去运行 2、通过配置文件可以完成访问控制 步骤: 1、创建配置文件 /etc/rsyncd.conf # vim /etc/rsyncd.conf 以下是全局选项: uid = xx gid = xxx use chroot = yes max connections = 4 syslog facility = local5 pid file = /var/run/rsyncd.pid motd file = file 指定一个消息文件 [share] 局部标签,可以定义需要共享的文件路径 path = /dir1 真正共享的路径 comment = xxx 描述 # vim /etc/xinetd.d/rsync ---->disable = no 2、重启xinetd服务 # service xinetd restart 3、测试验证 vm2: # rsync -av 10.1.1.1:: 发现远程主机所共享的共享名 # rsync -av 10.1.1.1::share /dir2 同步 允许10.1.1.2主机访问: # vim /etc/xinetd.d/rsync -→ only_from = 10.1.1.2 access_times = 10:00-18:00 【# vim /etc/rsyncd.conf ---> hosts allow = 10.1.1.210】 demo4:密码同步 #vim /etc/rsyncd.conf motd file = /etc/rsync.mes ------消息文件 [share] path = /dir1 secrets file = /etc/rsync.sec -----安全文件 auth users = u1,u2 ----- # vim /etc/rsync.mes ---> ..... # /etc/rsync.sec --- > u1:123456 u2:123456 # chmod 600 /etc/rsync.sec vm2: # rsync -av 10.1.1.1:: 发现远程主机所共享的共享名 # rsync -av [email protected]::share /dir2 同步 ----passwd:(需要输入密码 ) man 5 rsyncd.conf 课堂练习: 在上面的基础上增加一些功能: 1、把日志记录到/var/log/rsyncd.log文件 2、隐藏共享模块 3、同时只能1个客户端连接进行同步该模块 4、只允许10.1.1.2和你的物理机同步该模块 5、只能早上9点到下午6点同步 1、关于日志记录有以下4种方法 # /etc/xinetd.d/rsync log_type = file /var/log/rsyncd.log 或者 log_type = syslog local0 # vim /etc/rsyslog.conf local0.* /var/log/rsyncd.log /etc/rsyncd.conf log file = /var/log/rsyncd.log 或者 syslog facility = local0 vim /etc/rsyslog.conf local0.* /var/log/rsyncd.log 2、list = false 3、max connections = 1 4、hosts allow = 10.1.1.2 10.1.1.254 5、vim /etc/xinetd.d/rsync 思考:如果源端有文件删除,那么目标端怎么办 rsync+inotify架构实现实时同步: vm1:10.1.1.1 share:/dir1 步骤: 1、vim /etc/rsyncd.conf [share] path = /dir1 2、vim /etc/xinetd.d/rsync ... disable = no 3、service xinetd restart 4、安装第三方软件 # tar -xf inotify-tools-3.13.tar.gz -C /usr/src/ # cd /usr/src/ # cd inotify-tools-3.13/ # ./configure # make # make install 5、了解该软件带来哪些命令 # inotifywait --help -m: -q: -r: -e: 6、根据需求编写监控目录的脚本 需求:当vm1的/dir1目录删除、创建文件、修改文件等操作时需要实时同步到vm2的/dir2目录里 # vim /tmp/inotify.sh #!/bin/bash --->/usr/local/bin/inotifywait -mrq -e create,delete,move,modify,attrib /dir1 |while read events do rsync -av --delete /dir1 10.1.1.2::dir echo "date +‘%F %T‘ 发生了$events" >> /tmp/inotify.log done vm2:10.1.1.2 /dir2 1、# vim /etc/rsyncd.conf [dir] path = /dir2 2、# vim /etc/xinetd.d/rsync diable = no 3、# service xinetd restart 测试验证:

以上是关于syncrsync的主要内容,如果未能解决你的问题,请参考以下文章