linux文件数据同步--实现文件共享与备份(nfs+rsync+httpd+dns)

这篇具有很好参考价值的文章主要介绍了linux文件数据同步--实现文件共享与备份(nfs+rsync+httpd+dns)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

实验目地:

实验需求:

各项服务位置以及作用:

整体实验过程:

详细配置:

Rsync服务:

Web服务:

 NFS服务

DNS服务


linux多台服务器文件同步,各类服务程序配置过程,服务器,运维,linux,apache

实验目地:

在整体实验中,使客户机在网页可以看到由服务器A上传的文件,并且A服务器有一台备份服务器。

实验需求:

四台虚拟服务器与一台客户机,并关闭防火墙

服务器

IP地址

 部署服务

      部署作用

A

192.168.1.12

Rsync,nfs,DNS

主服务器,提供文件的源头

B

192.168.1.23

Rsync

实时同步,备份A服务器

C

192.168.1.11

Nfs,web

提供web服务,连接外网

D

192.168.1.22

Nfs,web

提供web服务,连接外网

各项服务位置以及作用:

RSYNC:此项服务是文件同步的传输工具,将文件推送给B,提供了一个远程服务器同步的快速方法,并且保持原文件的属性,以此达到备份的效果。

NFS:通过网络使不同设备共享彼此文件,所以在此项操作中,A服务器建立nfs共享文件到C,D。(注:A与C,D共享的文件要与B共享备份的文件一致)。

WEB:apache服务可以跨平台使用,所以要建立在C.D两台服务器上与客户机不同设备实现文件共享(注:将nfs的共享文件挂载到web的网页共享根目录来达到A,B,C,D服务器文件互通)

DNS:域名转IP,把DNS建立在服务器A上,提供C,D的域名服务,在客户机访问C,D时,由A服务器提供域名转IP服务,(在正反解析文件中写上客户机的域名与IP)

整体实验过程:

  1. 首先在A和B上建立rsync服务备份文件,B为rsync备份服务器,A为共享服务器;
  2. 在C,D上建立web服务器,启用httpd网页根目录,
  3. 在主共享服务器A上建立nfs服务,并把共享目录设置为rsync的备份目录。
  4. 把A服务器上nfs服务,发到C,D两台服务器,建立A分别连接从C,D
  5. 在C.D上把A服务器的nfs共享目录挂载到httpd网页根目录上
  6. 在客户机浏览器上输入IP或域名即可看到A服务器的文件内容

详细配置:

Rsync服务:

1,在A,B上下载rsync服务 #yum -y install rsync

2,首先在B服务器上创建同步数据的系统用户,并创建同步目录,让刚创建的用户对此目录有读写权。

# useradd rput && echo 'rput:123456' | chpasswd

#mkdir /web-bak/

#setfacl -R -m user:rput:rwx /web-bak/

#setfacl -R -m default:user:rput:rwx /web-bak/

在A上创建测试数据

#mkdir -p /var/www/html

#cp -r /boot/* /var/www/html

3,在B上配置rsync同步源,在B上创建/etc/rsyncd.conf文件,内容如下:

uid = root

gid = root

address = 192.168.1.23

port = 873

hosts allow = 192.168.1.0/24

use chroot = yes

max connections = 5

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

motd file = /etc/rsyncd.motd

[wwwroot]

path = /web-bak/

comment = used for

read only = false

list = yes

auth users = backuper

secrets file = /etc/rsyncd.passwd

根据上一步的设置,创建账号数据文件,添加一行用户记录,以冒号分隔,用户名称为backuper,密码为pwd123。由于账号信息采用明文存放,因此应调整文件权限,避免账号信息泄露。

# echo "Welcome to Backup Server" > /etc/rsyncd.motd

# vim  /etc/rsyncd.passwd    写入密码为:pwd123

修改此项文件权限,权限设置不对的话身份验证会失败

#chmod 600 /etc/rsyncd.passwd

开启此项服务:

#rsync  --daemon  --config=/etc/rsyncd.conf

并保存到/etc/rc.d/rc.local文件中,确保系统启动后自动启动rsync服务。并赋权:

#chmod +x /etc/rc.d/rc.local

4,至此rsync同步源配置完毕,下面使用rsync备份工具实现备份操作。

在A新建一个文件保存好密码,然后在rsync命令中使用--password-file指定此文件即可

# vim  /etc/rsyncd.passwd    写入密码为:pwd123

#chmod  600  /etc/rsync.passwd

linux多台服务器文件同步,各类服务程序配置过程,服务器,运维,linux,apache

 在源机器A上开始部署sersync服务

1)下载sersync

Rsync安装包下载地址:https://github.com/WayneD/rsync/releases

将sersync上传到服务器 /opt目录下

# mv sersync2.5.4_64bit_binary_stable_final.tar.gz  /opt/

# cd  /opt/

# tar zxf sersync2.5.4_64bit_binary_stable_final.tar.gz

# mv  GNU-Linux-x86  /opt/sersync

# cd  /opt/sersync/

2)配置sersync

# cp confxml.xml  confxml.xml.bak

更改优化sersync配置文件:24,25,31行

linux多台服务器文件同步,各类服务程序配置过程,服务器,运维,linux,apache

 linux多台服务器文件同步,各类服务程序配置过程,服务器,运维,linux,apache

 (3)开启sersync守护进程同步数据

# /opt/sersync/sersync2  -d  -r  -o  /opt/sersync/confxml.xml

(4)测试

在A上对/var/www/html/目录增删改目录文件,

看B上/web-bak/目录的变化

5)设置A:sersync监控开机自动执行

 # vim  /etc/rc.d/rc.local  #编辑,在最后添加一行

 /opt/sersync/sersync2  -d  -r  -o  /opt/sersync/confxml.xml  #设置开机自动运行脚本

6在A添加脚本监控sersync是否正常运行

# vim  /opt/check_sersync.sh  #编辑,添加以下代码

#!/bin/sh

sersync="/opt/sersync/sersync2"

confxml="/opt/sersync/confxml.xml"

status=$(ps aux | grep 'sersync2' | grep -v 'grep' | wc -l)

if [ $status -eq 0 ];

then

   $sersync -d -r -o $confxml &

else

exit 0;

Fi

把这个脚本加到A的任务计划,定期执行检测

# chmod +x check_sersync.sh

# echo "10 * * * * sh /root/check_sersync.sh &" >> /var/spool/cron/root

Web服务:

1,在C,D分别安装httpd服务

通过yum安装apache编译时需要的依赖包

#wget https://mirrors.cnnic.cn/apache/httpd/httpd-2.4.38.tar.gz

# yum -y install gcc gcc-c++ apr apr-devel cyrus-sasl-devel expat-devel libdb-devel openldap-devel apr-util-devel apr-util pcre-devel pcre lrzsz     

使用源码安装并解压到/usr/src下

linux多台服务器文件同步,各类服务程序配置过程,服务器,运维,linux,apache

 执行“./configure --help”命令,其中“./”表示当前目录。

# ./configure  --prefix=/usr/local/httpd    --enable-so    --enable-rewrite  --enable-charset-lite  --enable-cgi

编译配置:# make && make install

2,为了使用便捷添加软连接

# ln -s /usr/local/httpd/bin/* /usr/local/bin

3,建立.service配置文件

vim /lib/systemd/system/httpd.service

[Unit]

Description=the apache http server

After=natwork.target

[Service]

Type=forking

PIDFile=/usr/local/httpd/logs/httpd.pid

ExecStart=/usr/local/httpd/bin/apachectl $OPTIONS

ExecReload=/bin/kill -HUP $MAINPID

KillMode=process

Restart=on-failure

RestartSec=42s

[Install]

WantedBy=multi-user.target

开启查看此项服务:

# systemctl daemon-reload

# systemctl enable httpd.service

Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

# systemctl enable httpd.service

enabled

# systemctl start httpd.service

# systemctl status httpd.service

linux多台服务器文件同步,各类服务程序配置过程,服务器,运维,linux,apache

构建web主机

FQDN

www.test.com

IP

192.168.36.128

TCP PORT

80

网站根目录

/var/www/test/html

主页

index.html

分别准备两个虚拟站点的网页文件:

# mkdir  -p  /var/www/test/html  

# echo "www.test.com"  > /var/www/test/html/index.html

添加虚拟主机配置(注意IP修改)

# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf   //修改现有内容,

<VirtualHost 192.168.1.22:80>

    ServerAdmin webmaster@test.com

    DocumentRoot "/var/www/test/html"

    ServerName www.test.com

    ServerAlias test.com

    ErrorLog "logs/www.test.com-error_logs"

    CustomLog "logs/www.test.com-access_log" common

    <Directory "/var/www/test/html">

        Require all granted

    </Directory>

</VirtualHost>

修改主配置文件httpd.conf,加载httpd-vhosts.conf文件

# vim /usr/local/httpd/conf/httpd.conf

…………              //省略部分内容

ServerName www.example.com:80

Include conf/extra/httpd-vhosts.conf              //加载独立的配置文件

执行httpd -t命令检测httpd配置文件语法正确性

重启httpd服务使配置生效

[root@localhost ~]# systemctl restart httpdlinux多台服务器文件同步,各类服务程序配置过程,服务器,运维,linux,apache

 NFS服务

1,在A服务器上下载nfs服务(在C,D上也许下载)

# yum -y install nfs-utils rpcbind

先启动rpc服务,再启动nfs服务。

# systemctl start rpcbind    #启动rpc服务

# systemctl enable rpcbind    #设置开机启动

启动nfs服务:

# systemctl start nfs     #启动nfs服务

# systemctl enable nfs    #设置开机启动

2,在nfs服务端更改共享输出的目录设置权限

# chmod  -R  a+w  /var/www/html

(注:A与C,D共享的文件要与B共享备份的文件一致)

3,编辑/etc/exports配置文件,将本地的/var/www/html目录共享发布

# vim /etc/exports

/var/www/html 192.168.1.0/24(rw)

共享权限设置:  ro:只读属性  rw:读写属性

# systemctl reload nfs   重启服务

4,在C,D查看NFS服务器共享出来目录:

Showmount -e 192.168.1.12

并挂载到网页根目录上

# mount  -t  nfs  192.168.0.12:/var/www/html  /var/www/test/html/

DNS服务

1,在A安装dns服务

#yum -y install bind bind-chroot bind-utils

2,启动服务

# systemctl start named

# systemctl enable named

3.构建主dns服务器

创建named.conf主配置文件,提供test.com域的正向解析和192.168.1.0/24网段的反向解析。

# cp  -p  /etc/named.conf  /var/named/named.conf.bak

# vim  /etc/named.conf

options {

        listen-on port 53 { any; };

        listen-on-v6 port 53 { any; };

        directory      "/var/named";

        allow-query      { any; };

};

zone "." IN {

            type hint;

            file "named.ca";

};

zone "test.com" IN {

        type master;

        file "test.com.zone";

};

zone "1.168.192.in-addr.arpa" IN {

       type master;

       file "192.168.1.arpa";

};

查看有没有语法错误

# named-checkconf  /etc/named.conf

4.创建正向区域数据文件

# vim  /var/named/test.com.zone

$TTL 1D

@            IN    SOA    @ root.test.com. (

                                                 0    ; serial

                                                 1D   ; refresh

                                                 1H   ; retry

                                                 1W   ; expire

                                                 3H ) ; minimum

test.com.       IN   NS  dns-localhost1.test.com.

dns-localhost1.test.com.  IN   A   192.168.1.12

www.test.com.             IN   A   192.168.1.11

www.test.com.             IN   A   192.168.1.22

ftp.test.com.             IN   A   192.168.1.111

5.创建反向区域数据文件

$TTL 1D

@            IN    SOA    test.com.  root.test.com. (

                                                 0    ; serial

                                                 1D   ; refresh

                                                 1H   ; retry

                                                 1W   ; expire

                                                 3H ) ; minimum

             IN   NS  dns-localhost1.test.com.

12           IN  PTR   dns-localhost1.test.com.

11           IN  PTR   www.test.com.

22           IN  PTR   www.test.com.

111          IN  PTR   ftp.test.com.

更改区域数据文件的归属属性:

# chown  root:named  /var/named/test.com.zone

# chown  root:named  /var/named/192.168.1.arpa

判断语法有没有错误

正# named-checkzone  test.com  /var/named/test.com.zone

反# named-checkzone  1.168.192.in-addr.arpa  /var/named/192.168.1.arpa

并检查该文件是否存在问题。

# named-checkconf -z /etc/named.conf

更改配置项

将A服务器DNS删除,因为A本身就是DNS服务器,并且将B,C,D与客户机的DNS改为A的IP,以便使用

在网页中输入C或D的IP即可看到A服务器提供的文件文章来源地址https://www.toymoban.com/news/detail-772970.html

到了这里,关于linux文件数据同步--实现文件共享与备份(nfs+rsync+httpd+dns)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • rsync 远程同步实现快速、安全、高效的异地备份

    rsync 远程同步实现快速、安全、高效的异地备份

    目录 1 rsync 远程同步 1.1 rsync是什么? 1.2 rsync同步方式 1.3 rsync的特性 1.4 rsync的应用场景 1.5 rsync与cp、scp对比 1.6 rsync同步源 2 配置rsync源服务器 2.1 建立/etc/rsyncd.conf 配置文件 3 发起端 4 发起端配置 rsync+inotify 4.1 修改rsync源服务器配置文件 4.2 调整 inotify 内核参数 4.3 安装 inoti

    2024年02月05日
    浏览(22)
  • rsync远程同步实现快速、安全、高效的异地备份

    rsync远程同步实现快速、安全、高效的异地备份

    目录 一、rsync介绍 1、rsync是什么? 2、rsync同步方式 3、rsync的特性 4、rsync的应用场景 5、rsync与cp、scp对比 6、rsync同步源 二、rsync命令 1、常用选项 2、实例:本地复制对比 3、配置源的两种表示方法 三、配置rsync下行同步 四、rsync实时同步(inotify工具) 1、定期同步的不足

    2024年02月16日
    浏览(15)
  • Syncthing实时共享同步数据 服务器数据备份软件 Syncthing开机自启动 修改端口(linux、windows)

    Syncthing实时共享同步数据 服务器数据备份软件 Syncthing开机自启动 修改端口(linux、windows)

    Syncthing是一个开源文件同步工具,可以在多台设备之间实时同步文件或文件夹。它可以帮助你自由地选择数据的存储位置、数据是否被第三方共享以及同步的数据如何在互联网上传输。 Syncthing使用P2P技术实现数据在设备间的同步,和传统的网盘不同,数据在同步的过程中并不

    2024年02月05日
    浏览(15)
  • Linux 文件实时备份 rsync+lsyncd

    Linux 文件实时备份 rsync+lsyncd

    lsyncd官网 目的是每次只把新修改的同步,而不是全量备份。 Rsync(同步):将一个服务器的一个文件夹的内容提交到另外一个服务器的文件夹 lsyncd(差异检测并调用rsync):把差异的找出来,然后运行脚本 采用的是推送模式,即需要备份文件的服务器(客户端)向备份服务

    2024年02月09日
    浏览(9)
  • 在Linux中使用rsync进行备份时如何排除文件和目录?

    在Linux中使用rsync进行备份时如何排除文件和目录?

    在Linux系统中,rsync是一种强大的工具,用于文件和目录的备份和同步。然而,在进行备份时,我们可能希望排除某些文件或目录,例如临时文件、日志文件或其他不需要备份的内容。本文将介绍在Linux中使用rsync进行备份时如何排除文件和目录的方法。 方法一:使用–exclud

    2024年02月07日
    浏览(31)
  • Linux下的scp 、rsync两种命令同步文件

    scp 还非常不占资源,不会提高多少系统负荷,在这一点上, rsync 就远远不及它了。虽然 rsync比scp 会快一点,但当小文件众多的情况下, rsync 会导致硬盘I/O非常高,而scp基本不影响系统正常使用。 语法 示例 在Linux系统中, rsync 是一种功能强大且广泛使用的文件同步工具。它

    2024年02月14日
    浏览(10)
  • Rsync实现windows文件同步

    Rsync实现windows文件同步

    服务端:本机 ip:192.168.182.1 客户端:虚拟机 ip:192.168.182.130 安装rsync 下载地址:https://gitee.com/buchengfeng/cwRsync?_from=gitee_search 下载内容如下 cwRsyncServer_4.0.5_Installer.zip 为服务端软件 cwRsync_4.0.5_Installer.zip为客户端软件 服务端安装 一路next,然后到安装目录中配置conf文件 需要关注下

    2024年02月11日
    浏览(11)
  • sersync+rsync实现文件自动同步

    1、rsync介绍 rsync是类unix系统下的数据备份工具。其首先通过对数据文件进行块划分(通常512字节为一个数据块),然后计算每一个数据块的校验码(有两个校验码:一强一弱,弱校验码用来证明不同,强校验码用来证明相同),远程主机记录每次同步后各数据块的校验码,在

    2024年01月19日
    浏览(10)
  • rsync 远程同步----------安全高效的异地备份方案

    rsync 远程同步----------安全高效的异地备份方案

    目录 一、rsync介绍 rsync和cp的区别 rsync和scp的区别 二、rsync同步方式 rsync备份的方式 三、配置rsync源服务器 ①本地复制 ②下行同步 ③上行同步 四、常用Rsync命令 五、配置源的两种表达方法 六、部署rsync下行同步 ①环境准备 ②配置rsync源服务器-----------(192.168.246.8) 1)修改

    2024年04月14日
    浏览(10)
  • 【Linux】企业实战项目rsync+inotify实现实时同步(inotify安装及介绍、rsync + inotify 实现实时同步、rsync + inotify实现开机自启 )

    【Linux】企业实战项目rsync+inotify实现实时同步(inotify安装及介绍、rsync + inotify 实现实时同步、rsync + inotify实现开机自启 )

    rsync与传统的cp、tar备份方式相比,rsync具有安全性高、备份迅速、支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等。 随着应用系统规模的不断扩大,对数据的安全性和可

    2024年02月04日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包