NFS、SAMBA文件共享

一、webserver 服务器:作用是发布nginx的web项目
1、安装nginx(只下载不安装)
[root@web_server ~]# yum -y install --downloadonly --downloaddir=./soft/ nginx

2、配置一个本地的nginx仓库
[root@web_server ~]# yum -y install createrepo   用于创建本地仓库

3、使用createrepo生成仓库文件
[root@web_server ~]# createrepo ./soft/

4、soft目录中生成一个repodata目录检测soft目录中是否保存了一个repo文件
[root@web_server ~]# tree ./soft/
5、在/etc/yum.repos.d/新建一个repo文件,文件名字叫nginx
[root@web_server ~]# vim /etc/yum.repos.d/nginx.repo

6、建立缓存
[root@web_server ~]# yum clean all

[root@web_server ~]# yum makecache

7、安装nginx
[root@web_server ~]# yum -y install nginx

8、查看是否安装
[root@web_server ~]# rpm -qa | grep nginx
[root@web_server ~]# yum list installed | grep nginx

9、启动服务
[root@web_server ~]# which nginx
/usr/sbin/nginx

[root@web_server ~]# nginx

10、检测服务是否启动
[root@web_server ~]# netstat -lnput | grep nginx
[root@web_server ~]# ps -aux | grep nginx

11、远程访问

12、向web页面中添加图片和视频
(1)上传图片和视频 到 /usr/bin/nginx/html/中
(2)检测文件是否已经存在

[root@web_server ~]# ls /usr/share/nginx/html/

13、修改/usr/share/nignx/html/index.html

[root@web_server ~]# vim /usr/share/nginx/html/index.html   (153行)

14、访问web服务器

15、静态文件和动态文件没有区分
静态文件:需要在客户端运行的文件,html css js img mp4 安装包不需要在服务器中解析,需要用户下载到客户端,例如html文件要求用户下载到本地内存,使用本地浏览器解析并显示

动态文件:需要服务器先进行计算,再响应给客户端的内容,例如,登录(用户使用浏览器向服务器发送登录信息账户等,服务器对用户信息进行计算,服务器访问数据库,判断是否可以登录,将计算结果生成json或者html格式的数据响应给客户端的浏览器)。

由于用户更多的访问静态文件,而动态的访问可能不是很频繁,或者说数据传输量不是很大,静态文件的流量大,动态数据流量较小,开发者不希望动态项目和动态项目部署在同一个服务器上,静态的访问静态服务,动态访问动态的服务器。

以前部署一个jsp项目就可以了,现在需要前端服务,还要部署后端服务,前端服务器加大流量,后端服务器增加CPU,更加节省资源。

nfs提供了解决方案,将静态资源单独放置在一个服务器中,nfs主要支持局域网,目前使用aliyun或者其他的云服务 oss(对象存储服务 阿里云oss永久免费的40G使用)。

16、检查是否已经安装了应用 nfs-tools rpcbind
[root@web_server ~]# rpm -qa | grep nfs
[root@web_server ~]# rpm -qa | grep rpc

17、下载安装
[root@web_server ~]# yum -y install nfs-utils.x86_64 rpcbind.x86_64

二、nfs_server
1、下载安装nfs-utils.x86_64 rpcbind.x86_64
[root@nfs_server ~]# yum -y install nfs-utils.x86_64 rpcbind.x86_64

2、编辑配置文件/etc/exposts 指定暴露的文件
(1)创建一个目录
[root@nfs_server ~]# mkdir /share
[root@nfs_server ~]# touch /share/passwd
[root@nfs_server ~]# tree /share/
/share/
└── passwd

[root@nfs_server ~]# scp root@192.168.8.142:/usr/share/nginx/html/1.jpg /share/

[root@nfs_server ~]# scp root@192.168.8.142:/usr/share/nginx/html/2.mp4 /share/

(2)修改配置文件
[root@nfs_server ~]# vim /etc/exports

(3)启动rpcbind服务,nfs服务
[root@nfs_server ~]# systemctl start rpcbind.service 
[root@nfs_server ~]# systemctl start nfs

(4)查看端口占用情况(rpc服务的端口号是111)
[root@nfs_server ~]# netstat -lnput | grep 111

三、启动成功后在web_server测试
1、创建一个目录,/usr/share/nginx/html/static/这个目录用来挂载nfs服务器的数据
[root@web_server ~]# mkdir /usr/share/nginx/html/static

2、挂载nfs_server的文件
[root@web_server ~]# mount -t nfs 192.168.8.144:/share /usr/    (nfs机器的IP地址)
share/nginx/html/static/

[root@web_server ~]# ls /usr/share/nginx/html/static/    可以看到nfs服务共享的数据,这个数据是链接,不是真实的文件,和rsync的数据不同

3、web_server服务器,修改index.html,从static目录中引用图片和视频
[root@web_server ~]# vim /usr/share/nginx/html/index.html 

4、向share目录中添加数据
[root@nfs_server ~]# echo "呜呜呜呜,今天才周一" >  /share/a.txt

5、在web_server中查看mount 挂载的static目录
[root@web_server ~]# ls -l /usr/share/nginx/html/static/

6、测试在static目录中添加文件,看nfs_server服务器中的文件是否会更新
[root@web_server ~]# touch /usr/share/nginx/html/static/b.txt

7、备份scp cp rsync
当nfs 的share目录中的文件发生改变的时候,备份到backupserver主机中

备份是复制一份文件,共享是获取文件链接

(1)克隆一个备份主机backuphost
(2)停用防火墙和selinux
[root@backuphost ~]# systemctl stop firewalld

[root@backuphost ~]# setenforce 0

(3)支持rsync备份同步,安装rsync,backuphost,nfs_server主机都要安装
[root@backuphost ~]# yum -y install rsync

[root@nfs_server ~]# yum -y install rsync

(4)在nfs主机上安装inotify-tools监听/share目录
[root@nfs_server ~]# yum -y install inotify-tools

(5)先同步一份到backuohost主机的tmp目录下
[root@nfs_server ~]# rsync -av /share/ root@192.168.8.141:/tmp/

(6)需要输入密码才会同步过去,为了自动化,设置免密
[root@nfs_server ~]# ssh-keygen

[root@nfs_server ~]# ssh-copy-id root@192.168.8.141   //将公钥字符串添加到对方的家目录的authorizer_key文件中,也可以使用scp将id_rsa.pub文件上传到backuphost主机,手动将文件中的·字符串复制到authorizer_key中。

[root@nfs_server ~]# rsync -av /share/ root@192.168.8.141:/tmp/

(7)backuphost主机创建/bakup
[root@backuphost ~]# mkdir /bakup

(8)nfs_server主机上创建一个脚本rn.sh
[root@nfs_server ~]# vim rn.sh

[root@nfs_server ~]# chmod +x rn.sh 
[root@nfs_server ~]# nohup ./rn.sh&

[root@nfs_server ~]# touch /share/ab.txt

[root@nfs_server ~]# cat nohup.out 

(8.1)在backuphost主机可以查看到备份文件
[root@backuphost ~]# cd /bakup/
[root@backuphost bakup]# ls


(9)脚本代码
#!/bin/bash

inotifywait /share -mrq -e modify,create,delete,move | while read events

do

        rsync -av --delete /share/ root@192.168.8.142:/backup/

        #也可以输入日志

done

四、samba文件共享
1、samba软件安装(服务器搭建)
在backuphost主机上安装samba

[root@backuphost ~]# yum -y install samba

[root@backuphost ~]# yum list installed | grep mb

2、了解samba配置文件
etc/samba/smb.conf

[global]  全局选项

workgroup = MYGROUP                 定义samba服务器所在的⼯作组

server string = Samba Server Version %v         smb服务的描述

log file = /var/log/samba/log.%m            ⽇志⽂件

max log size = 50                   ⽇志的最⼤⼤⼩KB  

security = user             认证模式:share匿名|user⽤户密 码|server外部服务器⽤户密码 passdb backend = tdbsam         密码格式

 load printers = yes         加载打印机

cups options = raw          打印机选项

[homes]                 局部选项(共享名称)

comment = Home Directories      描述

browseable = no      隐藏共享名称

writable = yes      可读可写

[printers]      共享名称

comment = All Printers       描述

path = /var/spool/samba  本地的共享⽬录

browseable = no  隐藏

guest ok = no -->   public = no  需要帐号和密码访问

writable = no  -->  read only =yes 不可写

printable = yes      打印选项

[share]

path = /dir1 guest ok = no

writable = yes

3、修改配置文件,实现samba共享
[root@backuphost ~]# vim /etc/samba/smb.conf

4、设置用户user01,samba认证123密码
[root@backuphost ~]# useradd user01
[root@backuphost ~]# smbpasswd -a user01

Window要访问bakup中的文件,使用user01 123

5、启动名称管理
[root@backuphost ~]# systemctl start nmb.service 
[root@backuphost ~]# systemctl start smb.service

6、安装客户端
[root@web_server ~]# yum -y install samba-client

7、基于linux实现文件共享
[root@web_server ~]# smbclient -L 192.168.8.141 -U user01
[root@web_server ~]# smbclient //192.168.8.141/smb_share -U user01

8、将smb挂载到Linux系统
[root@web_server ~]# yum -y install cifs-utils
[root@web_server ~]# mkdir aaa
[root@web_server ~]# mount.cifs -o user=user01,pass=123 //192.168.8.141/smb_share ~/aaa/
[root@web_server ~]# ls -l aaa/

备份静态文件

  1. 克隆一个备份主机bakuphost
  2. 停用selinux和firewalld
  3. 支持rsync备份同步  安装rsync,bakuphost,nfsserver两台主机上都安装
  4. 在nfs主机上安装inotify-tools/share目录
  5. 先同步一份到bakup主机的tmp目录下
  6. 需要输入密码才会同步过去,为了自动化,设置免密
  7. Bakhost主机上创建/bakup
  8. Nfsserver上创建一个脚本
  9. 脚本代码
  10. 给添加x权限,执行脚本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值