Rsync 使用
1、服务端与客户端的定义
A机器向B机器发送数据, 或者A机器向B机器拉取数据
那么A均为客户端, B均为服务端
2、是否需要启动rsync服务
客户端不需要, 服务端需要
启动rsync进程: systemctl start rsyncd
设置rsync开机自启动: systemctl enable rsyncd
3、rsync相关配置
1)模块配置, 固定为/etc/rsyncd.conf, 权限644即可
2)用户密码配置, 可以在/etc/rsyncd.conf配置该文件路径, 推荐使用/etc/rsyncd.secret, 权限必须为600
3)日志回滚配置 /etc/logrotate.d/rsyncd.rotate, 按需添加
4、rsyncd.conf举例说明
###全局配置, 生效于每个模块, 并会被模块中相同的配置项覆盖
uid = root
gid = root
use chroot = no
pid file = /var/run/rsyncd.pid
#设置rsync用户密码配置文件路径
secrets file = /etc/rsyncd.secret
timeout = 300
read only = yes
write only = no
#设置最大连接数
max connections = 2048
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
#设置rsync日志文件, 若未设置, 则默认将日志写入syslog, 即/var/log/message, 当前版本的rsync不支持关闭日志, 所以若设置了该项, 记得添加日志回滚, 避免日志文件挤爆磁盘
log file = /var/log/rsync.log
syslog facility = local3
###分模块配置, 注意rsync配置时,注释必须另起一行
#模块名
[test-module]
#模块根目录,注意该目录若不存在, rsync不会自动创建, 传输将报错
path = /mylog/test/ori_data/
#设置为可写
read only = no
#rsync用户名
auth users = mylog
5、rsyncd.secret举例说明
格式为 用户名:密码 , 例如
mylog:abc123
mylog2:abc456
6、rsync基础命令
在使用rsync传输之前, 需要在本机创建一个密码文件, 名称随意,例如命名为rsync.key, 权限必须是600, 并且内容只包含要使用的密码(例如 abc123)
这条命令, 表示将本机/home/test/目录下的所有内容,使用模块test-module传输到192.168.1.2, 根据模块配置, 这些内容将被传输到/mylog/test/ori_data/目录下
1
/bin/rsync-az–timeout=30–contimeout=15–password-file=rsync.key /home/test/ mylog@192.168.1.2::test-module
注意这里/home/test/改为/home/test , test-module模块名后面添加了一层子目录/test/ , 这条命令表示将本机的/home/test目录本身, 使用模块test-module传输到192.168.1.2, 根据模块配置, 这些内容将被传输到/mylog/test/ori_data/test/目录下
1
/bin/rsync-az–timeout=30–contimeout=15–password-file=rsync.key /home/test mylog@192.168.1.2::test-module/test/
相比于第一条命令, 这里修改了最后两个参数的顺序, 表示从192.168.1.2拉取数据到本机的/home/test/目录下
1
/bin/rsync-az–timeout=30–contimeout=15–password-file=rsync.key mylog@192.168.1.2::test-module /home/test/