Rsync
rsync是系统自带的,下面是查看是否有rsync
[root@ c7-41 ~]# rpm -qa rsync
rsync-3.1.2-6.el7_6.1.x86_64
首先我们需要打开两个虚拟机
主机名 | 角色 | IP | 系统 |
---|---|---|---|
41 | 服务端 | 10.0.0.41 | centos7.7 |
42 | 客户端 | 10.0.0.42 | centos7.7 |
rsync一共有三种工作模式
三种传输模式:分别是本地传输,远程方式,守护进程。
本地复制模式:是类似cp
pull
隧道传输模式:是类似于scp
pull:拉取
pash:推送
守护进程方式: 以守护进程socker的方式传输数据
pull:拉取
pash:推送
注意一下:推拉的操作是通过rsync clent操作的
接下来是rsync守护进程模式的部署
服务端部署
先确定rsync软件服务是否存活
rpm -qa rsync
#如果没有进行yum安装 yum -y install rsync
参数的详解:
主要的参数
参数 | 解释 |
---|---|
-v, --verbose | 详细模式输出 |
-a, --archive | 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD |
-z, --compress | 对备份的文件在传输时进行压缩处理 |
-P | 显示进度 |
其他参数:
参数 | 解释 |
---|---|
-r, --recursive | 对子目录以递归模式处理 |
-l, --links | 保留软链结 |
-p, --perms | 保持文件权限 |
-o, --owner | 保持文件属主信息 |
-g, --group | 保持文件属组信息 |
-D, --devices | 保持设备文件信息 |
-t, --times | 保持文件时间信息 |
-e, --rsh=command | 指定使用rsh、ssh方式进行数据同步 |
–exclude=PATTERN | 指定排除不需要传输的文件模式 |
—exclude-from=FILE | 排除FILE中指定模式的文件 |
补充参数
-S, --sparse #对稀疏文件进行特殊处理以节省DST的空间
--bwlimit=KBPS #限制I/O带宽,KBytes per second
--delete #删除那些DST中SRC没有的文件
--password-file=FILE #从FILE中得到密码
-n, --dry-run #现实哪些文件将被传输
-w, --whole-file #拷贝文件,不进行增量检测
-B, --block-size=SIZE #检验算法使用的块尺寸,默认是700字节。
-x, --one-file-system #不要跨越文件系统边界
-R, --relative #使用相对路径信息
-b, --backup #创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。
-u, --update #仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件,不覆盖更新的文件
-q, --quiet #精简输出模式
-c, --checksum #打开校验开关,强制对文件传输进行校验
服务端手动配置rsync软件配置文件
**
切记:要删除注释和和所有空格,空行不算
**
服务端部署
1、手动配置rsync软件配置文件
[root@ c7-41 ~]#
vim /etc/rsyncd.conf
##全局配置
uid = root #用户
gid = root #用户组
use chroot = no #安全相关
max connections = 200 #最大链接数
timeout = 300 #超时时间
pid file = /var/run/rsyncd.pid #进程对应的进程号文件
lock file = /var/run/rsync.lock #锁文件
log file = /var/log/rsyncd.log #日志文件,显示出错信息
##模块配置
[backup] #模块名称
path = /data #模块对应的位置(路径)
ignore errors #忽略错误程序
read only = false #是否只读
list = false #是否可以列表
hosts allow = 10.0.0.0/24 #准许访问rsync服务器的客户范围
#hosts deny = 0.0.0.0/32 #禁止访问rsync服务器的客户范围
auth users = rsync_backup #不存在的用户;只用于认证
secrets file = /etc/rsync.password #设置进行连接认证的密匙文件
2、创建rsync备份目录以及授权rsync用户管理备份目录;修改备份目录权限
[root@ c7-41 ~]#
mkdir -p /data
useradd rsync -s /sbin/nologin -M
chown -R rsync.rsync /data/
3、创建认证用户密码文件;修改文件权限
[root@ c7-41 ~]#
echo "rsync_backup:123456" >/etc/rsync.password
chmod 600 /etc/rsync.password
4、重启rsync守护进程服务
[root@ c7-41 ~]#
systemctl restart rsyncd.service
systemctl enable rsyncd.service
#启动文件
[root@ c7-41 ~]# vim /usr/lib/systemd/system/rsyncd.service
[Unit]
Description=fast remote file copy program daemon
nditionPathExists=/etc/rsyncd.conf
[Service]
EnvironmentFile=/etc/sysconfig/rsyncd
ExecStart=/usr/bin/rsync --daemon --no-detach "$OPTIONS"
[Install]
WantedBy=multi-user.target
客户端部署
创建密码文件,在客户端的密码文件中只需要密码即可,同时,密码文件的权限给600
[root@ c7-42 ~]#
echo "123456">/etc/rsync.password
chmod 600 /etc/rsync.password
客户端测试推送文件
[root@ c7-42 ~]# rsync -avz aaa.txt rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.password
客户端测试拉取文件
[root@ c7-42 ~]# rsync -avz rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.password /tmp