前言:

总结下RSYNC服务搭建

介绍:

Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。

特点:

  • 能更新整个目录和树和文件系统
  • 有选择性的保持符号连接、硬链接、文件属于、权限、设备以及时间等
  • 能用rsh、ssh或直接端口做为传输入端口
  • 支持匿名rsync同步文件

rsync同步源:

指备份操作的远程服务器,也称为备份源,主要包括两种:rsync源、SSH源

命令格式:

本地同步rsync    本地目录1   本地目录2
rsync+ssh同步rsync   SSH源    本地目录rsync   本地目录    SSH源
rsync+rsync同步rsync rsync源  本地目录rsync   本地目录    rsync源

rsync命令的用法:

基本格式:rsync [选项] 原始位置 目标位置

-a 归档模式,表示以递归方式传输文件,并保持所有属性,等同于-rlptgoD-r 对子目录以递归模式处理,主要是针对目录来说的,如果单独传一个文件不需要加-r,但是传输的是目录必须加-r选项;-t 保持文件的时间属性;-p 保持文件的权限属性;-l 保留软链接;-L 同步软链接的同时同步其源文件;-g 保存文件数组;-o 保持文件的属主;-D 保存设备文件信息;-v =visual,可视化;-P 显示同步过程,比v更详细;-u =update,加上该选项,如果DEST中文件比SRC中的新,则不同步;-z =zip,传输时压缩;–delete 删除DEST中SRC没有的文件;–exclude 过滤指定文件,不同步;–progress 在同步的过程中可以看到同步的过程状态,比如统计要同步的文件数量、同步的文件传输速度等等;-e 指定端口;

进行实验

需要两台服务器

服务器端 192.168.186.135
客户机端 192.168.186.132

通过SSH进行同步

服务器端
[root@lemon /]mkdir /var/ssh
[root@lemon ssh]# touch ssh.txt(进行测试的文本)
#i建立两个用户,一个上传一个下载
[root@lemon ssh]# useradd a1
[root@lemon ssh]# passwd a1
[root@lemon ssh]# useradd a2
[root@lemon ssh]# passwd a2
#a1用户上传,更改一下属主权限
[root@lemon var]# chown a1:a1 /var/ssh/
#a2用户进行下载
客户机端(发起端)
mkdir /ssh
#发起端要先安装下rsync,使用命令:
rsync -avz a2@192.168.186.135:/var/ssh/* /ssh/


文件被传输过来了

但有时文件目录的属主权限是不能随意更改的,比如服务器端搭建了一个网站,如果将属组改成其他可能导致访问不了,可以使用setfacl命令进行操作

[root@lemon var]# mkdir /a
[root@lemon var]# setfacl -m u:manager:rwx /a
[root@lemon var]# useradd shy
[root@lemon var]# setfacl -m u:shy:r-x /a
#i删除权限
[root@lemon var]setfacl -x u:shy:r-x /a
[root@lemon var]setfacl -b /a

数据的上传

在客户端ssh目录下新建一个test.txt

同步到服务器端

同步完成

通过RSYNC进行同步

服务器端

没有主配值文件,需要自己手动写

[root@lemon etc]# vim /etc/rsyncd.conf
use chroot = yes
address = 192.168.186.135
port 873
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
[share]comment = shypath = /var/rsyncread only = yesdont compress = *.gz *.bz2auth users = shysecrets file = /etc/rsyncd_users.db

写一个密码存放的文件

[root@lemon etc]# vim /etc/rsyncd_users.db

[root@lemon etc]# rsync --daemon
[root@lemon etc]# netstat -anpt


端口已经开启了,下面就在服务器端创建测试文本

[root@lemon etc]# mkdir /var/rsync
[root@lemon etc]# cd /var/rsync/
[root@lemon rsync]# touch rsync.txt

客户端

先创建一个存放文件的目录
mkdir /rsync
进行连接
rsync -avz shy@192.168.186.135::share /rsync

如果访问失败的话更改一下服务器端密码文件的权限

#服务器端
[root@lemon rsync]# cd /etc
[root@lemon etc]# chmod 600 rsyncd_users.db


同步完成

0x03:完成实时自动同步

需要两台服务器

服务器端 192.168.186.135
客户机端 192.168.186.136

双向同步服务器不需要认证,方便后面的实验
这里使用的是root用户

服务器端:

[root@lemon 桌面]# ssh-keygen -t rsa

[root@lemon 桌面]# ssh-copy-id 192.168.186.136

同步到客户端中

同步成功
客户机端:

ssh-keygen -t rsa
ssh-copy-id 192.168.186.135


注意:如果提示没有ssh-copy-id这个命令,是因为最小化安装的缘故有的软件包没有安装上去

执行下面,去掉最小化安装的问题.
yum -y install openssh-clients

测试一下,客户机登陆一下:

测试成功

下面就来安装软件包,两台机器首先都需要安装gcc

yum -y install gcc*

安装好之后,两台机器连接一下软件包镜像,在软件包镜像挂载客户端的时候遇到了一个问题,因为我客户端选择的是无桌面的,连接镜像后什么也没有。

解决方法:

mount -o ro /dev/cdrom /media/
再次查看


镜像挂载好之后,服务器和客户机都要进行安装

cd /media/20130806_063316/
cp * /usr/src
先安装ocaml这个函数库(都要装)
[root@lemon src]# tar -zxf ocaml-3.10.1.tar.gz
[root@lemon src]# cd ocaml-3.10.1
[root@lemon ocaml-3.10.1]# ./configure
[root@lemon ocaml-3.10.1]# make world opt
[root@lemon ocaml-3.10.1]# make install
再安装unison(都要装)
[root@lemon src]# tar -zxf unison-2.13.16.tar.gz
[root@lemon unison-2.13.16]# make UISTYLE=text THREADS=true STATIC=true


这个错误不用管,是正常的

再将该命令添加到环境变量中去
[root@lemon unison-2.13.16]# cp unison /usr/local/bin/
接下来再安装inotify软件(都要装)
[root@lemon src]# tar -zxf inotify-tools-3.14.tar.gz
[root@lemon src]# cd inotify-tools-3.14
[root@lemon inotify-tools-3.14]# ./configure
[root@lemon inotify-tools-3.14]# make
[root@lemon inotify-tools-3.14]# make install

安装好之后进行测试

服务器端

mkdir /server1
[root@lemon server1]# touch server1.txt

客户端

mkdir /server2
touch server2.txt

服务器端进行同步

[root@lemon inotify-tools-3.14]# unison -batch /server1/ ssh://192.168.186.136//server2


同步成功

但通过命令比较麻烦,可以写shell脚本自动实现传输

#!/bin/bash
ip2="192.168.186.136"
src2="/server1"
dst2="/server2"
/usr/local/bin/inotifywait -mrq -e create,delete $src2 | while read line;
do/usr/local/bin/unison -batch $src2 ssh://$ip2/$dst2
echo -n "$line" >> /var/log/inotify.log
echo `date | cut -d " " -f1-4` >> /var/log/inotify.log
done

保存为1.sh

执行脚本
bash 1.sh

然后在客户机端远程连接服务器端

并在server1目录下创建一个文件,观察服务器端

实现了自动传输

除了这种还有其他方法,能够实现文件传输

服务器端进行的操作:
需要安装两个软件包

[root@lemon server1]# yum -y install rpcbind
[root@lemon server1]# yum -y install nfs-utils
[root@lemon server1]# vim /etc/exports

在这个文件中写入我们想要文件共享的列表

/public 192.168.186.0/24(rw,sync)
/share 192.168.186.136(ro,sync)

比如建立这两个目录,public目录是186网段的都拥有读写权限,而share 目录只192.168.186.136
可以读

[root@lemon /]# mkdir /public
[root@lemon /]# mkdir /share
[root@lemon /]# chmod 777 /public/
[root@lemon /]# chmod 777 /share/
[root@lemon /]# cd /public/
[root@lemon public]# touch public.txt
[root@lemon public]# cd ..
[root@lemon /]# cd /share/
[root@lemon share]# touch share.txt
重启下服务
[root@lemon share]# service rpcbind restart
[root@lemon share]# service nfs restart

showmount -e可以查看到本机共享的文件

出现错误是因为NFS服务器的hosts文件中的域名和NFS服务器的IP地址不对应造成的。
解决方法如下:
https://yq.aliyun.com/articles/43115

客户端进行的操作
先安装下这两个软件包

[root@lemon server1]# yum -y install rpcbind
[root@lemon server1]# yum -y install nfs-utils

在客户端使用命令查看,能发现服务器端共享出来的资源

将服务器端的/public目录挂载到客户端的/mnt目录,如果权限不允许的话先重启服务试试看

挂载/public目录成功,可以进行读写,下面来挂载一下/share目录,先卸载当前挂载的

umount /mnt/

然后将/share目录挂载到/mnt/目录,使用mount命令查看拥rw权限

到此实验就全部验证完成了!

Centos RSYNC服务搭建相关推荐

  1. CentOS -OpenStack-pike 服务搭建

    Centos-7 部署openstack-pike步骤详解 加入老张: 作者老张 关注老张微信公众号: 一.        环境准备: 控制节点与计算节点都做环境部署 1.1   两台虚拟机 两台ce ...

  2. Centos DHCP服务搭建及测试

    前言: 记录Centos学习! DHCP服务作用 为大量客户机自动分配地址,提供集中管理 减轻管理和维护成本.提高网络配置效率 DHCP原理 客户端寻找服务器 服务器提供地址信息 接受并广播 服务器确 ...

  3. Centos Apache服务搭建

    前言: 总结下搭建Apache服务 Apache相关文件: apache配置文件 /etc/httpd/conf/httpd.conf 默认网页保存位置 /var/www/html 日志保存位置 /v ...

  4. centos NTP服务搭建

    1.服务器端安装NTP服务 yum -y install ntp2.修改NTP配置文件 vi /etc/ntp.conf1)允许任何IP的客户机都可以进行时间同步将"restrict def ...

  5. 通过Shell脚本快速搭建高效Rsync服务

    在我们的日常运维中,会经常遇到搭建rsync服务的需求,如:网站文件的同步(镜像或备份),patch的更新,各种异机备份等容灾备份等等.如 果把rsync服务的搭建写成脚本,那么就可以在执行脚本之后, ...

  6. centos7 安装git_Centos7.4 Yapi 服务搭建

    Centos Yapi服务搭建 转载请标明原文出处 参考以下网址,排名不分先后 https://github.com/YMFE/yapi https://blog.csdn.net/guangzhou ...

  7. centos搭建rsync服务!

    为什么80%的码农都做不了架构师?>>>    rsync是Unix下的一款应用软件,它能同步更新两处计算机的文件与目录,并适当利用差分编码以减少数据传输.rsync中一项与其他大部 ...

  8. CentOS 6.7 Gitolite 服务搭建及TortoiseGit配置连接

    咳咳~好几天没写博文啦,这几天都在研究Git,没办法公司要要抛弃SVN转站Git,废话就不多说,下面我们进行操作演示: 环境:之前搭建的Redis-Master服务器一枚,配置一般般~ 工具:Tort ...

  9. linux安装appt服务,Centos下pptd ***搭建

    Centos下pptd ***搭建 *** 服务器ip: 172.16.113.40  *** :10.0.0.1 linux 客户端: 172.16.113.41 一 .***服务器配置 # yum ...

最新文章

  1. 翻页导航条页码计算方法
  2. 打车类app怎么获取司机位置 开发_详谈开发一款打车APP应用的解决方案
  3. linux亲和性,两种亲和性
  4. python编程if语法-python if控制流语句 语法笔记
  5. 比较windows phone程序启动和android程序启动原理
  6. 6个座位办公室最佳位置_2021最佳动力艇大奖:6个类别29个入围名单揭晓
  7. 华为机试——句子逆序
  8. 实时计算框架 Spark: Lightning-fast cluster computing
  9. wireshark 安装失败报错,缺少kb2999226补丁的解决方案
  10. windows10 卓越性能模式
  11. 关于数位板电脑绘画——入门篇
  12. CloseHandle(),TerminateThread(),ExitThread()的区别
  13. 摩托罗拉的新一代智能家庭和婴儿监护亮相香港电子产品展
  14. tableau可视化图表及仪表板设计
  15. 【Python基础】第十六篇 | 面向对象之高级篇
  16. 10道字节跳动C++/Java笔试真题你能做对几道?3道就赢了80%的竞争者(含答案)
  17. 解决在高分辨率下运行Photoshop CS6,程序界面字体过小的问题
  18. 3g和4g的跨越时间_跨越时间和数字的名字
  19. 如何在UI设计师中脱颖而出
  20. Echarts_1:水平柱体

热门文章

  1. 七、股票中的布朗运动和pandas.dataframe.pct_change()
  2. Python与常见加密方式
  3. node mysql limit_node中mysql连接池的connectionLimit指什么,它和mysql的最小连接数和最大连接数的关系是什么?...
  4. Transformer源代码解释之PyTorch篇
  5. 飞桨PaddlePaddle升级解读 | PaddleDetection物体检测统一框架
  6. CVPR 2018现场见闻
  7. 接下来学习计划2020.11.9
  8. 爬虫笔记10Scrapy-框架
  9. 丑憨批的爬虫笔记6实例
  10. 数字和字符串的相互转化