zoukankan      html  css  js  c++  java
  • [Linux]Linux下rsync服务器和客户端配置

    一、rsync简介

    Rsync(remote sync)是UNIX及类UNIX平台下一款神奇的数据镜像备份软件,它不像FTP或其他文件传输服务那样需要进行全备份,Rsync可以根据数据的变化进行差异(增量)备份,从而减少数据流量,提高工作效率。你可以使用它进行本地数据或远程数据的复制,Rsync可以使用SSH安全隧道进行加密数据传输。Rsync服务器端定义源数据,Rsync客户端仅在源数据发生改变后才会从服务器上实际复制数据至本地,如果源数据在服务器端被删除,则客户端数据也会被删除,以确保主机之间的数据是同步的。Rsync使用TCP 873端口。


    rsync 分为服务器端、客户端,服务器端搭建比客户端辛苦一些(也是很简单)。
    rsync 服务器是指以 deamon 方式运行 rsync 服务的服务器,需要打开 rsync deamon 和启动 xinetd 服务。默认端口873。
    rsync 客户端是发起 rsync 连接的服务器,安装rsync即可。
    rsync 客户端发起连接后,rsync 服务器会检查 rsync 客户端提交 rsync 服务器内建的户名和密码是否正确,如果通过认证检测,则开始文件传输,传输的过程是按要求先比对文件的大小、属性、权限、MD5值等信息,如果两端文件信息不一致,则按要求同步文件的区别块。

    Rsync命令详解:http://man.linuxde.net/rsync

    二、rsync实验环境

    • 客户端:10.30.2.39(位于中国)
    • 服务器:172.30.53.30(位于美国)
    • 服务器端Linux版本:CentOS release 5.11 (Final) [古老的服务器,现在最新版已经是cent os 7.5版本]
    • 客户端Linux版本:CentOS release 6.9 (Final)

    三、rsync服务器配置

    说明:服务器位于US的172.30.53.30机器,由于服务器的Linux版本较低,参考网上的一些配置都是基于cent os6,cent os7.折腾了很久没有成功。在cent os 5上面最终配置成功。下面的记录都是基于cent os 5配置的,过程会比cent os 6,7上面麻烦,但是对于cent os 6和7同样适用。

    1.查看并卸载系统自带的rsync

    >rpm -qa | grep rsync

    >rpm -e rsync***

    [删掉自带的rsync,后面将使用源码的方式安装需要的版本]

    2.下载最新版本并源码安装

    【rsync的源码链接,可以选择自己喜欢的版本源码安装: https://rsync.samba.org/ftp/rsync/src/

    >wget http://rsync.samba.org/ftp/rsync/src/rsync-3.0.7.tar.gz
    >tar xvfz rsync-3.0.7.tar.gz
    >cd rsync-3.0.7
    >./configure --prefix=/usr/local/rsync
    >make && make install

    3.创建配置文件(默认不存在,新建):/etc/rsyncd.conf

    >vim /etc/rsyncd.conf

    uid=nobody
    gid=nobody
    max connections=36000
    use chroot=no
    log file=/var/log/rsyncd.log
    pid file=/var/run/rsyncd.pid
    lock file=/var/run/rsyncd.lock
    port = 873
    
    [builds]
    comment= backup builds
    path=/var/www/html/pub/VA/builds
    ignore errors
    read only = yes
    host allow = *
    host deny=*
    secrets file=/etc/rsyncd.passwd
    auth users=root

    配置文件简单解释如下:

    port=873 指定端口(建议一定添加上)

    [builds]后面的内容主要是定义服务器端要被同步的文件夹和属性的设置

    secrets file=/etc/rsyncd.passwd
    auth users=root

    这两个配置要注意,指定了访问用户和账户的文件(步骤4会创建这个文件)。

    4.创建/etc/rsyncd.passwd(默认不存在)

    >vim /etc/rsyncd.passwd

    添加账户密码如下:格式(user:pwd)

    root:123456

    5.权限修改(很重要一步,不可省略)

    >chmod 600 /etc/rsyncd.conf
    >chmod 600 /etc/rsyncd.passwd

    6.启动服务器端

    >/usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf

    四、rsync客户端配置

    客户端的配置很简单,只需要安装rsync即可。客户端可以使用自带的rsync,也可以使用yum install rsync*.客户端在确保有rsync命令后,继续如下配置:

    1.创建文件(/etc/rsyncd.passwd)

    >vim /etc/rsyncd.passwd

    123456

    内容就是root的密码,参考服务器端的/etc/rsyncd.passwd文件设置。

    2.修改文件权限

    >chmod 600 /etc/rsyncd.passwd

    3.执行同步命令

    >rsync -vzrtopg --progress root@172.30.53.30::builds /builds --password-file=/etc/rsyncd.passwd

    也可以后台执行>rsync -vzrtopg --progress root@172.30.53.30::builds /builds --password-file=/etc/rsyncd.passwd &

    命令会显示执行的过程,实际服务器端很多T的数据,备份到中国的服务器需要很久。所以建议后台运行。

    4.查看客户端同步的文件夹,可以发现服务器端的文件和内容在不断增加。

    5.设置定时任务:

    这一步可以使用Linux的crontab或者jenkins定时执行同步任务,这里不详解。可以参考我的文章,jenkins的定时任务。

    五、高阶:通过rsync搭建自己的CentOS镜像站

    1.搭建镜像站需要三步:寻找较快的国内源 ,安装tomcat并配置,同步目标源数据。

    2.国内源

    国内源也是同步的国外的官方服务器,我们需要寻找支持rsync的国内源,可以百度搜索关键字【centos镜像站】或者用的我的推荐清华大学开源软件镜像站 https://mirrors4.tuna.tsinghua.edu.cn/centos/

    3.tomcat安装及配置安装

    >wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.24/bin/apache-tomcat-8.5.24-fulldocs.tar.gz
    >tar -zxvf apache-tomcat-8.5.24-fulldocs.tar.gz
    配置
    设置指定目录为资源目录

    设置tomcat显示软连接目录
    tomcat安装目录 / conf目录下的:context.xml文件,在 里面加上 allowLinking="true" 属性就可以了。
    设置tomcat目录浏览

    官网地址:https://tomcat.apache.org/
    链接地址:http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.24/bin/apache-tomcat-8.5.24-fulldocs.tar.gz同步源

    同步源

    就是将国内镜像站的数据同步到本机centos上。过程如下:
    • 先创建文件夹 :centos基础源目录 centos epel源目录
    • 使用rsync进行同步
    • 设置定时任务

    1.创建文件夹

    >mkdir -p /data/centos
    >mkdir -p /data/epel
    2.同步:

    >rsync -avrt rsync://mirrors4.tuna.tsinghua.edu.cn/centos/ /data/centos/
    >rsync -avrt rsync://mirrors4.tuna.tsinghua.edu.cn/epel/ /data/epel/
    3.定时任务:
    将上述两行同步语句写入脚本yum_rsync.sh,vi /etc/crontab #在最后一行添加以下代码

    0 1 * * * root /home/crontab/yum_rsync.sh #
    设置每天凌晨1点整开始执行脚本,:wq! #保存退出

  • 相关阅读:
    小透明学弟的华为上岸之路
    手把手体验远程开发,确实爽
    老弟做了个网盘,炸了!
    聊聊我在腾讯和字节工作感受
    2021,编程语言如何选择?
    优化了破网站的搜索功能
    15 道超经典大厂 Java 面试题!重中之重
    我两年的坚持,值了!
    聊聊百度搜索背后的故事
    struts2的配置步骤
  • 原文地址:https://www.cnblogs.com/forfreewill/p/9223704.html
Copyright © 2011-2022 走看看