主机配置
OS:centos7.8
主IP:192.168.80.15
备IP:192.168.80.12
关闭防火与Selinux(主备执行)
#关闭firewalld
systemctl stop firewalld
systemctl disable firewalld
#关闭selinux
sed -i '/SELINUX/{s/enforcing/disabled/}' /etc/selinux/config #永久关闭
1.安装配置Rsync (备服务器做配置)
yum install -y rsync
#修改配置文件
vim /etc/rsyncd.conf
uid = rsync
gid = rsync
fake super = yes
use chroot = no
max connections = 200
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 192.168.80.0/24
hosts deny = 0.0.0.0/32
auth users = rsyncweb
secrets file = /etc/rsync.password
[web]
comment = This is web data!
path = /data/www
#创建用户与同步文件目录
useradd rsync -s /sbin/nologin -M #同步用户
mkdir /data/www #创建文件目录
chown rsync.rsync -R /data #修改文件夹权限
#创建用户rsync同步文件的用户和密码文件。
echo "rsyncweb:123456" > /etc/rsync.password #将用户名密码写入到rsync.password文件
chmod 600 /etc/rsync.password #修改文件权限为600
#启动rsync
systemctl start rsyncd #启动
systemctl enable rsyncd #开机启动
2.主服务器安装配置
安装rsync
yum install -y rsync
创建密码文件
echo "123456" > /etc/rsync.password #密码就是服务器端的密码。
修改权限
chmod 600 /etc/rsync.password
3.测试文件同步
推送(主服务器上操作)
#将主服务器data文件夹下的文件全部推送到备份服务器端。web是rsyncd.conf配置文件下的web。
rsync -avzP /data/ rsyncweb@192.168.80.12::web --password-file=/etc/rsync.password
#将主服务器,data文件夹推送到备份服务器端。web是rsyncd.conf配置文件下的web。
rsync -avzP /data rsyncweb@192.168.80.12::web --password-file=/etc/rsync.password
拉取(主服务器上操作)
#将备份服务器web=/data/www目录中文件拉取到主服务器/data/www 文件夹中
rsync -avz rsyncweb@192.168.80.12::web /data/www --password-file=/etc/rsync.password
注释:
主配置文件说明
uid = rsync #rsync使用的用户,默认nobody
gid = rsync #rsync使用的gid 默认nobody
address = 192.168.80.31 #设置本服务器所监听网卡接口的ip地址
use chroot = no #是否限定在该目录下,默认为true,当有软连接时,需要改为fasle,如果为
#true就限定为模块默认目录,通常都在内网使用rsync所以不配也可以
max connections = 200 #设置最大连接数
timeout = 300 #超时时间 建议300-600
pid file = /var/run/rsyncd.pid #pid文件位置
lock file = /var/run/rsync.lock #指定lock文件用来支持“max connections ”参数使总连接不会超过限制
log file = /var/log/rsyncd.log #日志文件路径
ignore errors #忽略io错误
read only = false #指定客户端是否可以上传文件,默认
truelist = false #是否允许客户端查看可用模块
hosts allow = 192.168.80.0/24 #允许连接的ip段或个别ip,默认任何人都可以连接
hosts deny = 0.0.0.0/32 #不允许连接的IP段或个别ip
auth users = rsyncweb #指定以空格或逗号分隔用户,他们可以使用这个模块,用户不需要再本
#系统存在,默认所有用户都可以无密码登录
secrets file = /etc/rsync.password #指定用户名和密码文件 格式:用户名:密码 密码不超过8位
#这个是密码文件 全线最好是600
[web]
comment = "this is a comment" #此参数指定在客户端获取可用模块列表时显示在模块名称旁边的描述字符串,默认没有这个参数
path = /data/www #模块在服务端的绝对路径
list = true #客户端请求显示模块列表时,本模块名称是否显示,默认为true
常用命令
命令格式
Local: rsync [OPTION...] SRC... [DEST] =====>本地的推送格式
Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
常用选项
-v 详细模式输出 传输时候显示进度等信息
-z 传输时进行压缩提高传输速率 --compuress-level=num 可以按级别压缩
-r 对子目录以递归模式,即目录下的所有目录都同样传输
-t 保持文件时间信息
-o 保持文件属性信息
-g 保持稳健属组信息
-a 归档模式 相当于 rtopg
-P 显示同步过程及传输时进度信息
-e 使用信道协议 指定替代rsh 的shell程序 如ssh
--exclude=PATTERN 指定排除不需要传输的文件 支持*来代替任意字符
-D 保持设备文件信息
-l 保留软连接
常用的选项为 avz
SSH传输使用
利用ssh传输
rsync -avz -P -e 'ssh -p 22' ./hello.txt root@192.168.80.12:/backup/
#将主服务器/data/www 文件同步到备份服务器/data/backup/(直接把www文件夹同步过去)
rsync -avz /data/www root@192.168.80.12:/data/backup/
#将主服务器/data/www/全部文件同步到备份服务器/data/backup/(直接把www下的文件同步过去,不同步文件夹)
rsync -avz /data/www/ root@192.168.80.12:/data/backup/