rsync配置

rsync 同步备份工具 windows和UNIX和Linux都可以
支持特殊文件拷贝,传输。如链接文件,设备等
工作模式:本地模式。单个主机数据传输
远程同步:scp ssh 方便同一个网络下数据同步(异地备份)
a. pull --拉:下载
b.push—推:上传
守护进程模式运行:满足前面的本地和远程备份。
rsync的本地同步模式:
rsync option 源 目的
常用的option:

-a,–archive(存档) 归档模式,表示以递归的方式传输文件,并且保持文件属性,等同于加了参数-rlptgoD

-r,–recursive 对子目录以递归模式处理

-l,–links 表示拷贝链接文件

-p , --perms 表示保持文件原有权限

-t , --times 表示保持文件原有时间

-g , --group 表示保持文件原有属用户组

-o , --owner 表示保持文件原有属主

-D , --devices 表示块设备文件信息

-z , --compress 表示压缩传输

-H 表示硬连接文件

-A 保留ACL属性信息

-P 显示传输进度

源 -本地数据

目的 -远程数据 — 推送

源 -远程数据

目的 -本地数据 — 拉取
Redhat7是默认安装了rsync了
如果没有安装就yum install -y rsync
直接安装。
本地同步
rsync配置_第1张图片
这是本地同步的。
–delete 删除目的位置有 源位置没有的文件 进行同步
rsync必须以源位置做“主”,源位置有什么 。目的位置就有什么,同步目的地址目的就也没有并且会删除
我们又来创建一个文件,来同步远程服务器
在这里插入图片描述 提供了

网络限制
rsync配置_第2张图片
加上 --bwlimint =1024k 这是代表带宽限制。传输到远程得后面以:/文件路径
我们又来通过端口来发送。这是一种转义
rsync -avz -e ‘ssh -p 22’ /etc/ [email protected]:/backup/
然后就在传输同步了
上面都是推送
我们看看拉取
rsync -azp -e ‘ssh -p 22’ [email protected]:/backup/ /backup/
从远程的以root用户的172.16.99.241的backup目录下 同步到本地/backup目录下。

  1. 现在我们来看看,以守护进程的方式来部署rsync。
    rsync配置_第3张图片
    在生产环境中都是从客户端去拉取,所以是单向箭头
    172.16.99.241 是rsync daeon 172.16.99.95 是client
    首先先创建rsync用户
    useradd -M -s /sbin/nologin rsync
    创建用户,不创建夹目录,指定用户组
    rpm -ql rsync
    查看配置文件在那
    在这里插入图片描述
    这里即可查看到rsync的配置文件位置
    编辑配置文件 vi /etc/rsync.conf
    [root@services ~]# vi /etc/rsyncd.conf

/etc/rsyncd: configuration file for rsync daemon mode

See rsyncd.conf man page for more options.

configuration example:

uid = rsync 用户=rsync
gid = rsync 组=rsync
use chroot = no 程序安全设置
max connections = 4 最大连接数
pid file = /var/run/rsyncd.pid 进程id

exclude = lost+found/

transfer logging = yes
timeout = 300

ignore nonreadable = yes

dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2

对以上这类文件不做二次压缩
lock file = /var/run/rsyncd.lock 进程锁以及路径
log file =/var/run/rsyncd.log 文件日志以及路径
[backup] 备份文件夹
path = /backup 使用目录
comment = backup export area
ignore errors 有错误时忽略
read only = fales 可读可写(true或false
list=false 阻止远程列表(不让通过远程方式看服务端有啥)
hosts allow = 172.16.99.0/24 允许IP
hosts deny = 0.0.0.0/32 阻止远程
auth users = rsync_backup 存放用户
secrets file = /etc/rsync.password 存放密码的文件
配置完成之后,保存退出
rsync --daemon 启动 (873端口)
netstat -lnt 即可查看到
mkdir /backup 创建文件
chown -R rsync:rsync /backup/
将文件夹属组和权限给 rsync用户
rsync配置_第4张图片
这里是创建虚拟用户和密码,指定到刚刚在配置文件里面指定的文件
auth users =rsync_backup
secrets file =/etc/rsync.password
这里一定要文件名称路径相同
然后赋权600给此文件。不然就是只能root用户,就不成功了
iptables -F 此时关闭防火墙
setenfore 0
systemctl stop firewalld
现在设置开机自启
systemctl list-unit-files 查看哪些服务开机自启
systemctl list-units --type=service 可以看到当前类型为service的服务的运行状态

在这里插入图片描述systemctl enable rsyncd.service 设置开机自启动
现在设置客户端
[root@client ~]# echo “gz.10086” > /etc/rsync.password 只需要设置密码即可
[root@client ~]# chmod 600 /etc/rsync.password 设置权限
rsync配置_第5张图片
这里直接输入密码,就可以实现同步了
在这里插入图片描述
这是客户端的
rsync配置_第6张图片
这是服务端的
刚刚我们是指定密码的,可以不用输入密码
rsync配置_第7张图片
在后面加上参数 --password -file=/etc/rsyncd.password
这是指定密码的路径就可以不用输入密码
现在我们做一个排除某些文件不同步,怎么去做呢
我们在服务器上面去操作
rsync配置_第8张图片
rsync -azP --exclude=1 --exclude=123/4 [email protected]::backup /backup/
这是命令。这就可以指定文件不传输。
rsync配置_第9张图片
第二种方法就是把需要排除的文件,写文本,用参数指定
[root@client 123]# vi /root/exclude.txt
rsync配置_第10张图片
[root@client ~]# rsync -avzP --exclude-from=/root/exclude.txt [email protected]::backup /backup/
rsync配置_第11张图片
这就ok了 也可以
[root@client ~]# rsync -azP --delete [email protected]::backup /backup --password-file=/etc/rsyncd.password
这样也可以。
好了rsync就完成了

你可能感兴趣的:(运维,rsync详解,linuxrsync,rsync)