ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

NFS共享存储与rsync实时同步

2022-05-21 19:33:00  阅读:187  来源: 互联网

标签:rsync backup www data NFS nfs 共享 root


NFS共享存储与rsync实时同步

0.需求

1.web01和web02可以上传图片

2.nfs用户数据每天凌晨1点做备份

3.校验数据的完整性

4.nfs用户数据实时同步到backup的/data/目录下,做nfs的备机

1.环境准备

主机名 WanIP LanIP 角色 部署服务
web01 10.0.0.7 172.16.1.7 nfs客户端 httpd,php,nfs
web02 10.0.0.8 172.16.1.8 nfs客户端 httpd,php,nfs
nfs 10.0.0.31 172.16.1.31 nfs服务端,rsync客户端 nfs,rsync,inotify
10.0.0.41 172.16.1.41 rsync服务端,nfs服务端(备机) nfs,rsync

部署web网站

1.安装apache,php:yum install -y httpd php
2.下载交作业网站的压缩包
	[root@web02 /var/www/html]# ll
    total 28
    -rw-r--r--. 1 root root 27020 May 18 11:54 kaoshi_modify.zip
3.解压该压缩包:
	unzip kaoshi_modify.zip
4.修改配置文件将用户修改成www:

5.创建用户
	1.创建www用户:groupadd -g 666 www
 		  		 useradd -u 666 -g 666 www -s /sbin/nologin -M
	2.查看用户:
		[root@web02 /var/www/html]# id www
		uid=666(www) gid=666(www) groups=666(www)
	3.修改站点目录的属主与属组: chown -R www:www /var/www/html
		[root@web02 /var/www/html]# ll -d
		drwxr-xr-x. 2 www www 102 May 21 14:59 .
6.启动服务并加入开机自启:
	systemctl start httpd
	systemctl enable httpd
7.检查进程和端口

8.打开浏览器访问网站

9.上传文件测试是否成功

部署NFS服务—服务端

1.安装nfs服务:yum install -y nfs-utils
2.修改配置文件:[root@nfs ~]# vim /etc/exports
# 共享目录 允许通过的网段(参数)
/data    172.16.1.0/24(rw,sync,anonuid=666,anongid=666,all_squash)
3.根据配置文件创建目录
	mkdir /data
4.创建www用户
	groupadd -g 666 www
	useradd -u 666 -g 666 www -s /sbin/nologin -M
5.修改共享目录属主
	[root@backup ~]# ll /data -d
	drwxr-xr-x. 2 www www 6 May 21 15:50 /data
6.开启nfs服务并加入开机自启:
	[root@backup ~]# systemctl start nfs
	[root@backup ~]# systemctl enable nfs
7.检查进程

8.查看配置文件是否生效
[root@nfs ~]# cat /var/lib/nfs/etab 
/data	172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=666,anongid=666,sec=sys,rw,secure,root_squash,all_squash)

NFS客户端

1.安装nfs服务:yum install -y nfs—utils
2.查看挂载点:
    [root@web02 ~]# showmount -e 172.16.1.31
    Export list for 172.16.1.31:
    /data 172.16.1.0/24
3.挂载目录
	mount -t nfs 172.16.1.31:/data /var/www/html/user_data/
4.查看是否挂载成功

5.上传文件查看是否能够收到

使用sersync实现同步

1.部署rsync——服务端
	0.安装rsync:yuminsatll -y rsync 
	1.修改rsync的配置文件:
	[root@backup ~]# vim /etc/rsyncd.conf 
        uid = www
        gid = www
        port = 873
        fake super = yes
        use chroot = no
        max connections = 200
        timeout = 600
        ignore errors
        read only = false
        list = false
        auth users = rsync_backup
        secrets file = /etc/rsync.passwd
        log file = /var/log/rsyncd.log
        #####################################
        [backup]
        comment = welcome to oldboyedu backup!
        path = /backup
        [sync_data]
        comment = sync_data
        path = /data
       2.根据配置文件创建用户
       	groupadd -g 666 www
	useradd -u 666 -g 666 www -s /sbin/nologin -M
       3.创建密码文件
	   echo 'rsync_backup:123'>/etc/rsync.passwd
       4.修改密码文件的权限为600
	   [root@backup ~]# chmod 600 /etc/rsync.passwd 
	   [root@backup ~]# ll /etc/rsync.passwd 
	   -rw-------. 1 root root 17 May 21 16:27 /etc/rsync.passwd
       5.创建同步目录
	   mkdir /data
       6.修改目录的属主
	   chown -R www:www /data
	   [root@backup ~]# ll /data -d
	   drwxr-xr-x. 2 www www 6 May 21 15:50 /data
       7.启动rsync服务并加入开机自启:
	  [root@backup ~]# systemctl start rsyncd
	  [root@backup ~]# systemctl enable rsyncd
      8.检查进程和端口

rsync客户端

	1.先安装rsync和inotify:yum install -y rsync inotify-tools
	2.创建rsync密码文件:
		[root@nfs ~]# echo '123'>/etc/rsync.passwd
		[root@nfs ~]# cat /etc/rsync.passwd 
		123
	3.修改密码文件权限为600
		chmod 600 /etc/rsync.passwd
	4.推数据测试rsync是否配置成功

2.安装sersync的二进制包:
	1.创建放置安装包的目录
	   mkdir /application
	2.获取安装包:
	   wget http://test.driverzeng.com/other/sersync2.5.4_64bit_binary_stable_final.tar.gz
3.解压安装包
    [root@nfs /application]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz 
    [root@nfs /application]# ll
    total 712
    drwxr-xr-x. 2 root root     41 Oct 26  2011 GNU-Linux-x86
4.修改sersync配置文件
	vim /application/GNU-Linux-x86/confxml.xml

5.启动服务
	[root@nfs /application/GNU-Linux-x86]# /application/GNU-Linux-x86/sersync2 -rdo /application/GNU-Linux-x86/confxml.xml
6.在/data目录下创建一个文件查看是否同步

每日备份——服务端

1.客户端提前准备存放的备份的目录,目录规则如下: /client_backup

2.客户端在本地打包备份(系统配置文件、应用配置等)拷贝至 /client_backup 包名: nfs_172.16.1.31_2022-05-

16.tar.gz

3.客户端最后将备份的数据进行推送至备份服务器

4.客户端每天凌晨1点定时执行该脚本

5.客户端服务器本地保留最近7天的数据, 避免浪费磁盘空间

服务端需求

1.服务端部署rsync,用于接收客户端推送过来的备份数据

2.服务端需要每天校验客户端推送过来的数据是否完整

3.服务端需要每天校验的结果通知给管理员

4.服务端仅保留6个月的备份数据,其余的全部删除

1.创建备份目录
 	mkdir /backup
2.修改目录的属主
 	chown -R www:www /backup
 	[root@backup ~]# ll /backup/ -d
	drwxr-xr-x. 2 www www 6 May 21 17:41 /backup/

rsync客户端

1.测试能否发送文件

2.编写脚本实现备份
    [root@nfs ~]# vim backup.sh
    bak_dir="/client_backup"
    host_name=`hostname`
    ip=`/sbin/ifconfig eth1|awk 'NR==2{print $2}'`
    bak_time=`date +%F`
    mkdir -p $bak_dir
    tar -zcPf $bak_dir/${host_name}_${ip}_${bak_time}.tar.gz /data
    cd $bak_dir && \
    md5sum *${bak_time}.tar.gz > ${host_name}_${ip}_${bak_time}.md5
    rsync -avz $bak_dir/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.passwd
    find $bak_dir -type f ! -mtime -7|xargs rm -f
3.测试脚本并校验文件是否丢失

4.编写定时任务
#Usage:date_backup By:jl Date:2022/5/21
00 01 * * * /usr/bin/sh /root/backup.sh &> /dev/null

rsync服务端编写

1.安装发邮件工具:yum install -y mailx
2.修改配置文件:vim /etc/mail.rc
	set from=发送邮件的邮箱
    set smtp=smtps://smtp.qq.com:465
    set smtp-auth-user=发送邮件的邮箱
    set smtp-auth-password=授权码
    set smtp-auth=login
    set ssl-verify=ignore
    set nss-config-dir=/etc/pki/nssdb/
3.编写脚本 vim md5.sh
	bak_dir="/backup"
    host_name=`hostname`
    bak_time=`date +%F`
    cd $bak_dir && \
    md5sum -c *${bak_time}.md5 | mail -s '校验文件' qq邮箱
    find /backup/ -type f ! -mtime -180 |xargs rm -f
4.测试脚本 :sh md5.sh

5.编写定时任务
[root@backup ~]# crontab -l
# Usage:date_backup By:jl Date:2022/5/21
01 01 * * * /usr/bin/sh /root/mds.sh &> /dev/null

标签:rsync,backup,www,data,NFS,nfs,共享,root
来源: https://www.cnblogs.com/zlyj/p/16295776.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有