配置分析 Rsync 异地同步

搭建的服务:rsync

需求:

  1. 服务端的 /mnt/rsync 文件夹内容同步到客户端的 /mnt/rsync 文件夹内容, 时间为1小时同步一次。
  2. 服务端的 /data/rsync 文件夹内容同步到客户端的 /data/rsync 文件夹内容, 时间为实时同步。

架构图

在这里插入图片描述

搭建 rsync(在服务器 192.168.10.204操作)

yum 安装 rsync 版本:rsync-3.1.2-4

yum install -y rsync
1、配置 rsync 配置文件(解析只需要修改的部分,不修改不做解析)
 	uid = nobody
    gid = nobody
    use chroot = no    //是否使用chroot
    strict modes = false        
    read only = false    //是否为只读
    log file = /var/log/rsyncd.log    //日志文件位置
    pid file = /var/run/rsyncd.pid    //存档进程ID的文件位置
    port = 873    //监听端口
    max connections = 4    //最大连接数

    [mnt]    //共享模块名称
    path = /mnt/rsync    //源目录的实际路径        
    auth users = rosen    //授权账户
    secrets file = /etc/rsyncd.scrt    //存放账户信息的数据文件
    dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2    //同步时不再压缩的文件类型
    
    [data]
    path = /data/rsync
    auth users = rosen
    secrets file = /etc/rsyncd.scrt
    dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
2、建立账号文件,修改权限
# vim /etc/rsyncd.scrt
rosen:rosen123
# chmod 600 /etc/rsync.scrt

注:另一台服务器 192.168.10.246 安装启动就好,不用修改配置
添加账号文件/etc/rsyncd.scrt 直接写密码即可

# vim /etc/rsyncd.scrt
rosen123
3、两台 rsync 启动服务
# service rsyncd start
# netstat -ntlp (端口号 873)

在服务端建立文件夹和文件测试观察效果
# mkdir /mnt/rsync    
# chmod 777 /mnt/rsync/
# touch {1..9}.txt /mnt/rsync

# mkdir /data/rsync    
# chmod 777 /data/rsync/
# touch {1..9}.sql /data/rsync
4、连接同步(以下 4 和 5 的操作都在服务器 192.168.10.246 上实现)
# rsync -az --delete --password-file=/etc/rsyncd.scrt [email protected]::mnt  /mnt/rsync/
# rsync -az --delete --password-file=/etc/rsyncd.scrt [email protected]::data  /data/rsync/
5、加入到 crontab -e 中定时同步数据
# crontab -e
* 1/* * * * rsync -az --delete --password-file=/etc/rsyncd.scrt [email protected]::mnt /mnt/rsync/   每1小时同步一次
* * * * * rsync -az --delete --password-file=/etc/rsyncd.scrt [email protected]::data /data/rsync/        每秒钟同步一次
用法如下:
    下行:rsync […] user@host:远程目录  本地目录
    上行:rsync […] 本地目录 user@host:远程目录

语法解释
-a 同步,归档模式,相当于-rpltgoD(-r递归,包括目录/子目录及所有文件。-l 保留符号链接文件。 -p 、-t 保留文件的权限、时间标记。 -o 、-g 保留文件的属主?属组标记。 -D 保留设备文件及其他特殊文件)
-v 可以看到操作细节
-n 测试同步操作,不做实际修改
-z 是压缩传输,-r 是recursive
-u 是只同步已经更新的文件,避免没有更新的文件被重复更新一次,不过要注意两者机器的时钟的同步。
–progress是指显示出详细的进度情况
–delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致
–password-file=/etc/rsyncd.scrt 来指定密码文件,无需交互式地输入验证密码,注意的是这份密码文件权限属性要设得只有属主可读

rsync -a /boot /todir //同步整个文件夹
rsync -a /boot/ /todir/ //只同步目录下的数据

用法一:手动输入密码交互方式共享资源同步到本地

rsync -az <用户名>@ip::<共享目录>/  /opt

用法二:自动交互式

rsync -az --delete --password-file=/etc/rsyncd.scrt <用户>@IP::<远端目录> /<本地目录>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章