怎样设计自己网站域名,怎么找wordpress博客,三站合一网站建设,黑马培训是正规学校吗大家好呀#xff01;这里是码农后端。今天来介绍一下数据同步服务RSYNC#xff0c;作为Linux/Unix系统中远程或本地复制同步#xff08;复制#xff09;文件和目录最常用的命令#xff0c;相比于scp命令#xff0c;其具有增量备份、数据同步时保持文件的原有属性等优点。… 大家好呀这里是码农后端。今天来介绍一下数据同步服务RSYNC作为Linux/Unix系统中远程或本地复制同步复制文件和目录最常用的命令相比于scp命令其具有增量备份、数据同步时保持文件的原有属性等优点。 一、RSYNC概述 1、几种方式 sync 同步刷新文件系统缓存强制将修改过的数据块写入磁盘并且更新超级块。async 异步将数据先放到缓冲区再周期性一般是30s的去同步到磁盘。rsync 远程同步remote synchronous 数据同步过程 以保存文件为目标sync数据同步会强制把缓存中的数据写入磁盘立即保存适合实时性要求比较高的场景。而asyn数据异步则是先将数据先放到缓冲区再周期性一般是30s的去同步到磁盘适合批量数据同步的场景。 同步(Synchronous)异步(Asynchronous)远程同步Remote Synchronous 2、rsync特点 1可以镜像保存整个目录树和文件系统 2可以保留原有的权限(permission,mode)owner,group,时间(修改时间,modify time)软硬链接文件acl文件属性(attributes)信息等 3传输效率高使用同步算法只比较变化的增量备份 如把A服务器中的file1.txt、file2.txt、 file3.txt传输到B服务器使用rsync实现数据同步会先比较假设B服务器中存在file1.txt、file2.txt则只会同步file3.txt。 4支持匿名传输方便网站镜像也可以做验证加强安全 3、rsync与scp的区别 两者都可以实现远程同步但rsync相对更强一些。体现如下 1支持增量备份 2数据同步时保持文件的原有属性 二、RSYNC的使用 1、基本语法 1使用man命令查看帮助手册 man rsync 2选项说明 OPTION选项说明一般使用 -av
-v 详细模式输出
-a 归档模式递归的方式传输文件并保持文件的属性equals -rlptgoD-r 递归拷贝目录
-l 保留软链接
-p 保留原有权限
-t 保留原有时间修改
-g 保留属组权限
-o 保留属主权限
-D 等于--devices --specials 表示支持b,c,s,p类型的文件-R 保留相对路径
-H 保留硬链接
-A 保留ACL策略
-e 指定要执行的远程shell命令ssh更改端口常用选项
-E 保留可执行权限
-X 保留扩展属性信息 a属性 PUSH推即上传PULL拉即下载 2、本地文件同步 本地文件同步可以理解为把文件从一个位置同步拷贝到另一个位置类似cp eg1/dir1、/dir2与/dir3/dir1中创建三个文件file1、file2、file3使用rsync本地同步 # 创建目录
mkdir /dir1
mkdir /dir2
mkdir /dir3
# /dir1中创建三个文件file1、file2、file3
touch /dir1/file{1..3}rsync -av /dir1/ /dir2 把/dir1目录中的所有文件拷贝到/dir2目录中
rsync -av /dir1 /dir3 把/dir1目录整体同步到/dir3目录中 eg2rsync -R选项的应用保留相对路径 rsync -avR /dir1/ /dir2 eg3rsync --delete删除目标目录里多余的文件 /dir1file1、file2 /dir2file1、file2、file3 rsync --delete同步后会自动删除file3文件。让dir1与dir2目录中的文件高度一致 rsync -av --delete /dir1/ /dir2 3、rsync作为系统服务 默认情况下rsync只是作为一个命令来进行使用的ps在查询进程时找不到对应的服务但是rsync提供了一种作为系统服务的实现方式。 Linux系统服务的思路 对外提供服务——端口监听——启动服务——启动脚本——配置文件 1启动rsyncd服务CentOS6中没有CentOS7中有这个服务 systemctl start rsyncd 如果企业中使用到操作系统为CentOS6版本则没有启动脚本。则需要查看帮助手册 man rsync
rsync --help
rsync --daemon --help# CentOS6rsync作为系统服务
# 1、先创建文件
touch /etc/rsyncd.conf
# 2、启动服务作为后台运行
rsync --daemon# 查看服务进程
ps -ef|grep rsync
# 查看服务端口号
netstat -tunlp |grep rsync -t tcp , -u udp 注如果rsync作为系统服务单独运行则其底层就不需要SSH服务了 2rsyncd服务的配置文件/etc/rsyncd.conf man 5 rsyncd.conf 三、任务解决方案(重点) 1、环境准备 用到的服务器及对应IP配置如下 编号IP地址主机名称角色110.1.1.10code.itweb.cnCodeMIS210.1.1.100backup.itweb.cnBackupBackup 1关闭防火墙与SELinux # 关闭防火墙
systemctl stop firewalld
# 禁止开机启动
systemctl disable firewalld
# 获取SELinux的状态
setenforce 0vim /etc/selinux/config
SELINUXdisabled 2更改主机名称 hostnamectl set-hostname code.itweb.cn
hostnamectl set-hostname backup.itweb.cn
# 切换生效
su 3更改IP地址静态IP # 服务器Code
vim /etc/sysconfig/network-scripts/ifcfg-ens33TYPEEthernet
BOOTPROTOnone
IPADDR10.1.1.10
NETMASK255.255.255.0
GATEWAY10.1.1.2 # 网关连接外网
DNS18.8.8.8
DNS2114.114.114.114
NAMEens33
UUIDa5bb176c-c05c-4bdb-8975-a4aafa2fc90u 更改UUID的后3位
DEVICEens33
ONBOOTyes# 服务器Backup
vim /etc/sysconfig/network-scripts/ifcfg-ens33TYPEEthernet
BOOTPROTOnone
IPADDR10.1.1.100
NETMASK255.255.255.0
GATEWAY10.1.1.2 # 网关连接外网
DNS18.8.8.8
DNS2114.114.114.114
NAMEens33
UUIDa5bb176c-c05c-4bdb-8975-a4aafa2fc56y 更改UUID的后3位
DEVICEens33
ONBOOTyes
# 重启网络
systemctl restart network 关于上述一些常见的参数的说明如下图 4关闭NetworkManager systemctl stop NetworkManager
systemctl disable NetworkManager 5配置YUM源 可以使用官方默认的YUM如有需要可自行配置。 6时间同步 ntpdate cn.ntp.org.cn 2、远程文件同步 1Push上传文件到远程服务器端 rsync -av 本地文件或目录 远程用户名远程服务器的IP地址:目标路径 eg1把linux.txt文档传输到远程服务器端10.1.1.100的root目录下 rsync -av linux.txt root10.1.1.100:/root eg2把shop文件夹传输到远程服务器端10.1.1.100的root目录下 rsync -av shop root10.1.1.100:/root 2Pull下载文件到本地服务器端 rsync -av 远程用户名远程服务器的IP:目标文件或目录 本地存储位置 eg1把远程服务器10.1.1.100的/etc/hosts文件下载到本地 rsync -av root10.1.1.100:/etc/hosts ./ eg2把远程服务器10.1.1.100的/shop文件夹下载到本地 rsync -av root10.1.1.100:/shop ./ 扩展 问题1rsync远程同步数据时默认情况下为什么需要密码如果不想要密码同步怎么实现 rsync在远程同步时之所以要输入密码是因为其底层还是基于SSH服务的。SSH有两种认证方式如果没有配置免密则默认使用用户名密码的认证方式。 如果不想要密码同步可以考虑使用SSH免密操作。 Code Backup Code # 生成公钥和私钥
ssh-keygen -t rsa -P
# 将公钥发送给10.1.1.100服务器
ssh-copy-id root10.1.1.100 问题2如果Backup服务器端更改了SSH的默认端口如更改为10086又该如何同步 # 使用 -e选项
rsync -e ssh -p 10086 -av rsync.txt root10.1.1.100:/root 3、给RSYNC服务添加密码扩展 Code服务器 1打开/etc/rsyncd.conf配置文件 vim /etc/rsyncd.conf[app]
path/app/java_project
log file/var/log/rsync.log
# 添加
auth users user1,user2 用户名
secrets file /etc/rsyncd.secrets 密码文件 2在/etc目录下创建rsyncd.secrets文件 vim /etc/rsyncd.secretsuser1:123 设置密码用户名:密码
user2:123 3更改密码文件权限为600 chmod 600 /etc/rsyncd.secrets 4重启rsyncd服务 systemctl restart rsyncd 5Backup备份服务器 rsync -av user110.1.1.10::app ./
Password:123 好了以上就是今天这篇文章的全部内容了。如果你想及时看到我的文章只需做这几个动作点星标、点在看包括赞、评论、分享我就会经常出现在您的常读列表后面更新都会提醒。感谢大家的关注和支持祝大家生活美满学业有成事业蒸蒸日上 最后星标设置如下 如下即设置成功 往期精彩文章推荐点击下方蓝字即可阅读 往期推荐 SSH服务搭建及免密登录实现 SSH服务搭建之YUM源配置与静态IP配置 SSH基于用户名密码的认证原理 一文带你快速了解VMware的三种网络模式 什么是yum源如何对其进行配置 Linux有哪些常用的高级扩展命令