培训第十一天(nfs与samba共享文件)

上午

1、环境准备

(1)yum源 (一个云仓库+pepl仓库)
 [root@web ~]# vim /etc/yum.repos.d/hh.repo [a]name=abaseurl=file:///mntgpgcheck=0[root@web ~]# vim /etc/fstab /dev/cdrom /mnt iso9660 defaults 0 0[root@web ~]# mount -a[root@web ~]# yum repolist[root@web ~]# ping www.baidu.com[root@web ~]# yum -y install wget[root@web ~]# vim /etc/resolv.conf将dns该为114.114.114.114   8.8.8.8[root@web ~]# ping www.baidu.com    //可以ping通百度即可进行下一步[root@web ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo[root@web ~]# yum clean all[root@web ~]# yum makecache[root@web ~]# yum -y install epel-release.noarch[root@web ~]# yum clean all[root@web ~]# yum makecache
(2)防火墙和selinux
 [root@web ~]# systemctl stop firewalld[root@web ~]# systemctl disable firewalldRemoved symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.[root@web ~]# setenforce 0[root@web ~]# vim /etc/selinux/configSELINUX=permissive

2、安装配置web服务器

(1)使用自建的yum仓库下载nginx
1、先只安装不下载nginx
 [root@web ~]# yum -y install --downloadonly --downloaddir=./soft/ nginx
2、下载cteaterepo,自建仓库
 [root@web ~]# yum -y install createrepo[root@web ~]# createrepo ./soft/[root@web ~]# ls soft/[root@web ~]# vim /etc/yum.repos.d/nginx.repo[nginx]name=nginxbaseurl=file:///root/soft/gpgcheck=0enable=1[root@web ~]# yum clean all[root@web ~]# yum makecache 
3、使用自己建造的仓库下载nginx
 [root@web ~]# yum -y install nginx[root@web ~]# nginx    //启动nginx检查服务是否启动:[root@web ~]# netstat -lnput | grep nginx[root@web ~]# ps -aux | grep nginx浏览器访问测试:

(2)在nginx的首页中插入自己的图片与视频
1、查找nginx的配置文件位置
 [root@web html]# find / | grep nginx/usr/share/nginx/html[root@web html]# rpm -ql nginx/usr/share/nginx/html/404.html[root@web nginx]# cd /usr/share/nginx/html/[root@web html]# ls404.html  50x.html  en-US  icons  img  index.html  nginx-logo.png  poweredby.png
2、将图片与视频放到指定路径下

可以将其直接拖拽到vm中,也可以使用scp进行传输文件。

 [root@web html]# yum -y install lrzsz[root@web html]# rz -E    //将图片拖到/usr/share/nginx/html中或者/usr/share/nginx/html/img中[root@web html]# vim index.html <img src="3.jpg" alt="示例图片" width="500" height="300"> [root@web html]# nginx -s reload浏览器继续访问,查看图片是否上传成功[root@web html]# rz -E   //将视频拖到/usr/share/nginx/html中[root@web html]# vim index.html <video width="320" height="240" controls><source src="1.mp4" type="video/mp4"></video><img src="3.jpg" alt="示例图片" width="500" height="300">[root@web html]# nginx -s reload最终浏览器效果如下图:

3、安装配置nfs服务器

NFS(Network File System,网络文件系统)是一种分布式文件系统协议,允许一个系统在网络上与他人共享目录和文件。

rpcbind 是一个用于支持 RPC(Remote Procedure Call,远程过程调用)的服务。在一些操作系统中,如 CentOS 8,NFS(Network File System,网络文件系统)的实现依赖于 RPC 机制,而 rpcbind 充当了 NFS 服务器和客户端之间的中介,用于完成从远程到本地的映射过程。

搭建 NFS 服务器时,需要安装 rpcbind 以及 nfs-utils 软件包来提供 NFS 共享服务。

(另起一台机子)

(1)下载nfs软件与其依赖软件
 [root@nfsserver ~]# yum -y install nfs-utils.x86_64 rpcbind.x86_64
(2)创建一个目录/share并创建文件/share/passwd
 [root@nfsserver ~]# mkdir /share[root@nfsserver ~]# touch /share/passwd
(3)将web机子的图片和视频拷贝过来到/share目录下
 [root@nfsserver ~]# scp root@10.0.0.30:/usr/share/nginx/html/3.jpg  /share/[root@nfsserver ~]# scp root@10.0.0.30:/usr/share/nginx/html/1.mp4  /share/
(4)编辑配置文件/etc/exports指定要暴露的文件(/share)
 [root@nfsserver ~]# vim /etc/exports/share   *(rw,sync)这段配置的含义是,将 /share 目录共享给所有的客户端(* 代表所有),并且赋予客户端可读写(rw)和数据同步(sync)的权限。
(5)测试
 ​mount -t nfs <服务器 IP>:<共享目录> <本地挂载点>
[root@nfsserver ~]# mount -t nfs 10.0.0.11:/share /nfs
[root@nfsserver ~]# ls /nfs
1.mp4  1.txt  2.txt  3.jpg  a.txt  passwd
[root@web ~]# yum -y install nfs-utils.x86_64 
[root@web ~]# mount -t nfs 10.0.0.11:/share /nfs
[root@web ~]# ls /nfs/
1.mp4  1.txt  2.txt  3.jpg  a.txt  passwd
[root@nfsserver ~]# touch /share/hh.txt
[root@web ~]# ls /nfs/
1.mp4  1.txt  2.txt  3.jpg  a.txt  hh.txt  passwd
[root@nfsserver ~]# echo "哈哈" >> /share/hh.txt 
[root@web ~]# cat /nfs/hh.txt 
哈哈

下午

1、自动监控备份静态文件

(1)修改hostname
 [root@beifen ~]# hostnamectl set-hostname bakserver[root@beifen ~]# reboot
(2)关闭防火墙与selinux
 [root@bakserver ~]# systemctl stop firewalld[root@nfsserver ~]# systemctl disable firewalld[root@bakserver ~]# setenforce 0[root@nfsserver ~]# vim /etc/selinux/config SELINUX=permissive
(3)安装rsync,2个主机都有安装
 [root@bakserver ~]# yum -y install rsync[root@nfsserver ~]# yum -y install rsync
(4)安装inotify监控
 [root@nfsserver ~]# yum -y install inotify-tools-devel.x86_64 
(5)同步一份文件到bakserver上

(每次都需要输入密码不方便,设置免密)

 [root@nfsserver ~]# rsync -av /share/ root@10.0.0.31:/tmp/
(6)设置免密
 [root@nfsserver ~]# ssh-keygen [root@nfsserver ~]# ssh-copy-id root@10.0.0.31(将公钥字符串添加到对方家目录中的authorized_keys文件中也可以使用scp将id_rsa.pub文件上传到bakserver主机,手工将文件中的字符串复制到authorized_keys)
(7)确定全部都免密,测试实时rsync是否能够免密备份
 [root@nfsserver ~]# rsync -av /share/ root@10.0.0.31:/tmp/
(8)在备份主机上创建/bakpu目录
 [root@bakserver ~]# mkdir /bakpu   //同步的信息都存放在这里
(9)在nfs上编辑脚本,并进行监控,实现自动同步
 [root@nfsserver ~]# vim rn.sh #!/bin/bashinotifywait -mrq -e modify,create,delete,attrib,move /share/ | while read eventsdorsync -av /share/ root@10.0.0.31:/bakpuecho "`date +%F\ %T`出现时间$events" >> /var/log/rsync.log 2>&1done[root@nfsserver ~]# chmod +x rn.sh [root@nfsserver ~]# nohup ./rn.sh &[root@nfsserver ~]# touch /share/1.txt
(10)查看是否同步成功
 [root@bakserver ~]# ls /bakpu/1.mp4  1.txt  3.jpg  a.txt  passwd

2、SAMBA文件共享

Samba 是在 Linux 和 Unix 系统上实现 SMB(Server Message Block)协议的一个免费软件。

SMB 协议主要用于 Windows 操作系统的文件和打印共享。通过 Samba,Linux 和 Unix 系统可以与 Windows 系统进行良好的交互和资源共享。

Samba 的主要特点和优势包括:

  1. 跨平台文件共享:允许 Windows、Linux 和 macOS 等不同操作系统之间共享文件和打印机。

  2. 易于配置:可以通过简单的配置文件和命令来设置共享目录、用户权限等。

  3. 支持多种身份验证方式:例如本地用户、域用户等。

在实际应用中,Samba 常用于以下场景:

  • 企业办公环境:让 Windows 客户端能够访问 Linux 服务器上的共享文件。

  • 家庭网络:在不同操作系统的设备之间共享多媒体文件。

例如,在一个小型办公室中,可以使用 Samba 在一台 Linux 服务器上设置共享目录,使得办公室内的 Windows 电脑能够方便地访问和存储文件。

配置 Samba 时,需要编辑 /etc/samba/smb.conf 文件来定义共享目录、访问权限、用户等信息。

(1)下载samba软件
 [root@bakserver ~]# yum -y install samba[root@bakserver ~]# ls /etc/samba/lmhosts  smb.conf  smb.conf.example
(2)修改samba的配置文件
 [root@bakserver ~]# vim /etc/samba/smb.conf[smb_share]     //这是共享的名称,客户端在访问时会看到这个名称。comment = samba service    //这是对该共享的注释说明,用于提供一些描述信息,这里说明是“Samba 服务”path = /bakpu         //指定了实际共享的目录路径为`/bakpu`guest ok = no         //表示不允许访客访问,只有经过授权的用户才能访问writable = yes        //表示允许对该共享目录进行写入操作
(3)设置用户user01,samba认证123密码
 [root@bakserver ~]# useradd user01[root@bakserver ~]# smbpasswd -a user01New SMB password:Retype new SMB password:Added user user01.

window要访问bakpu中的文件,使用user01 123

(4)启动名称管理
 [root@bakserver ~]# systemctl start nmb.service [root@bakserver ~]# systemctl start smb.service 
(5)测试

在本机(window)上直接搜索启用或关闭windows功能

找到SMB直接全部开启

点击映射网络驱动器

输入备份主机的地址与配置文件中【】里的信息

输入用户名与密码

即可查看到samba文件共享的内容

发现并无修改权限

为共享文件添加可写的权限

(完成以后在window中可以读写)

 [root@bakserver ~]# setfacl -m u:user01:rwx /bakpu/*

3、在linux系统中安装samba客户端

(1)安装客户端软件包
 [root@web ~]# yum -y install samba-client
(2)使用smb客户端访问服务器
 [root@web ~]# smbclient -L 10.0.0.31 -U user01    //这条命令用于以用户 user01 的身份列出指定 IP 地址 10.0.0.31 上 Samba 服务器所提供的共享资源列表Enter SAMBA\user01's password: ​Sharename       Type      Comment---------       ----      -------print$          Disk      Printer Driverssmb_share       Disk      samba serviceIPC$            IPC       IPC Service (Samba 4.10.16)user01          Disk      Home Directories​Reconnecting with SMB1 for workgroup listing.​Server               Comment---------            -------Workgroup            Master---------            -------SAMBA                BAKSERVER​[root@web ~]# smbclient //10.0.0.31/smb_share -U user01   //以用户 user01 的身份连接到 IP 地址为 10.0.0.31 上名为 smb_share 的共享资源Enter SAMBA\user01's password: Try "help" to get a list of possible commands.smb: \> ls.                                   D        0  Mon Jul 22 16:32:56 2024..                                  D        0  Mon Jul 22 16:20:01 20241.mp4                               N  5882370  Mon Jul 22 13:17:38 20241.txt                               N        0  Mon Jul 22 16:27:44 20243.jpg                               N   114639  Mon Jul 22 11:44:14 2024a.txt                               N       10  Mon Jul 22 16:01:59 2024passwd                              N        0  Mon Jul 22 11:43:15 20242.txt                               N        0  Mon Jul 22 16:34:17 202418855936 blocks of size 1024. 16848524 blocks available
(3)挂载smb共享文件

cifs-utils 是一个包含一系列实用工具的软件包,主要用于在 Linux 系统上实现对 CIFS(Common Internet File System,通用 Internet 文件系统)共享的挂载和管理。

CIFS 是 SMB(Server Message Block)的一种变体,它允许 Linux 系统与其他支持 CIFS/SMB 协议的设备(如 Windows 系统)进行文件和打印机的共享访问。

通过 cifs-utils 包中的 mount.cifs 命令,可以将远程的 CIFS 共享目录挂载到 Linux 本地的某个目录上,从而像操作本地文件一样对共享目录中的文件进行操作,例如查看、编辑、复制等。

要使用 cifs-utils,通常需要进行以下步骤(具体命令可能因 Linux 发行版而略有不同):

  1. 安装 cifs-utils 包:

    • 在 Ubuntu 或 Debian 系统上,使用命令sudo apt-get install cifs-utils

    • 在 CentOS 或 Fedora 系统上,使用命令sudo dnf install cifs-utils

  2. 创建用于挂载共享目录的本地目录(例如/mnt/share):sudo mkdir /mnt/share

  3. 使用 mount.cifs 命令挂载共享目录:sudo mount.cifs //server/share /mnt/share -o username=user,password=pass。其中,//server/share是共享目录的UNC路径(包括服务器地址和共享目录名称),/mnt/share是本地挂载目录,-o后面指定了连接共享所需的用户名和密码。

此外,还可以设置其他选项,如工作组域名等。例如,如果用户在 Windows 工作组或域中,可以这样设置:sudo mount.cifs -o username=<win_share_user>,domain=<win_domain> //win_share_ip/<share_name> /mnt/share

为了提高安全性,也可以使用凭证文件来保存用户名、密码和域名等信息,而不是直接在命令行中指定。首先创建凭证文件(如/etc/win-credentials),设置正确的权限和所有者(如sudo chown root: /etc/win-credentials && sudo chmod 600 /etc/win-credentials),然后在挂载命令中使用Credentials=/etc/win-credentials选项来指定凭证文件。

如果希望在系统启动时自动挂载共享目录,可以编辑/etc/fstab文件,在其中添加相应的挂载信息。

需要注意的是,在使用 CIFS 共享时,要确保具有足够的权限访问远程共享目录,并且网络连接正常。同时,出于安全考虑,在公共网络环境中使用 CIFS 共享时要谨慎。另外,CIFS 协议已逐渐被 SMB2 和 SMB3 协议所取代,它们提供了更好的安全性和性能。但 cifs-utils 通常也支持这些较新的协议版本。实际使用中,还需根据具体的网络环境和需求进行配置和调整。

 [root@web ~]# yum -y install cifs-utils[root@web ~]# mount.cifs -o user=user01,pass=123 //10.0.0.31/smb_share ~/aaa/[root@web ~]# ls aaa/1.mp4  1.txt  2.txt  3.jpg  a.txt  passwd

总结

  1. ftp 局域⽹和外⽹都可以

  2. nfs 局域⽹ 挂载⽅式访问 mount.nfs 侧重于Linux与Linux之间

  3. samba 局域⽹ 直接访问(smbclinet)挂载的⽅式mount.cifs 侧重于Windows与 Linux之间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/50102.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaSE--基础语法--继承和多态(第三期)

一.继承 1.1我们为什么需要继承? 首先&#xff0c;Java中使用类对现实世界中实体来进行描述&#xff0c;类经过实例化之后的产物对象&#xff0c;则可以用来表示现实中的实体&#xff0c;但是 现实世界错综复杂&#xff0c;事物之间可能会存在一些关联&#xff0c;那在设计程…

Java之数组应用-冒泡排序-二分查找

冒泡排序 冒泡(Bubble Sort)排序是一种简单排序算法&#xff0c;它通过依次比较交换两个相邻元素实现功能。每一次冒泡会让至少一个元素移动到它应该在的位置上&#xff0c;这样 n 次冒泡就完成了 n 个数据的排序工作。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”…

实在智能RPA助力三大运营商用“AI+RPA”打造新质生产力!

近年来&#xff0c;人工智能及自动化技术的突破性进展&#xff0c;正深刻地影响和重塑全球的生活生产模式。 作为我国现代化和数字化进程中的先行军的运营商行业&#xff0c;以中国电信、中国联通和中国移动等为代表的运营商企业&#xff0c;正致力于把握这一历史机遇&#xff…

SpringBoot项目配置多环境env

javaSpringBoot项目多环境配置 为什么maven Profiles 救命项目的pom文件管理 为什么 项目里面需要集成测试环境、开发、生产、多云环境&#xff0c;不仅需要application.yml,还需要加载别的config配置文件 故&#xff0c;我需要便捷多环境配置管理 maven Profiles 救命 项目的…

MySQL练手 --- 1934. 确认率

题目链接&#xff1a;1934. 确认率 思路 由题可知&#xff0c;两个表&#xff0c;一个表为Signups注册表&#xff0c;另一个表为Confirmations信息确认表&#xff0c;表的关联关系为 一对一&#xff0c;且user_id作为两个表的连接条件&#xff08;匹配字段&#xff09;&#…

【C# WInForm】将TextBox从输入框设置为文本框

1.需求情形&#xff1a; textbox作为最常用的控件之一&#xff0c;通常是用来输入文本信息或者显示文字&#xff0c;但是如果要在界面中显示大段文本&#xff0c;一个带有边框、可选中的文本样式似乎不合适。像这样&#xff1a; 我需要的是这段文字不仅能跨行&#xff0c;而且…

c++笔记2

目录 2.2 栈底&#xff08;bottom&#xff09; } 大数乘大数 节点&#xff1a;包含一个数据元素及若干指向子树分支的信息 。 节点的度&#xff1a;一个节点拥有子树的数目称为节点的度 。 叶子节点&#xff1a;也称为终端节点&#xff0c;没有子树的节点或者度为零的节点…

elmentui this.$confirm使用模板字符串构建HTML结构

tip(){const checkingList [];const findList[入会1,入会2,入会3] //数组const sueccList [{name:入会,suecc:1000,numcot:1000},{name:aaaaa,suecc:222,numcot:3333}] //数组对象var message// 使用模板字符串构建HTML结构if(sueccList.length>0){message <div>…

Apache ShardingSphere Proxy5.5.0实现MySQL分库分表与读写分离

1. 前提准备 1.1 主机IP:192.168.186.77 version: 3.8services:mysql-master:image: mysql:latestcontainer_name: mysql-masterenvironment:MYSQL_ROOT_PASSWORD: 123456MYSQL_USER: masterMYSQL_PASSWORD: 123456MYSQL_DATABASE: db1 ports:- "3306:3306&quo…

ModuleNotFoundError: No module named ‘scrapy.utils.reqser‘

在scrapy中使用scrapy-rabbitmq-scheduler会出现报错 ModuleNotFoundError: No module named scrapy.utils.reqser原因是新的版本的scrapy已经摒弃了该方法,但是scrapy-rabbitmq-scheduler 没有及时的更新,所以此时有两种解决方法 方法一.将scrapy回退至旧版本,找到对应的旧版…

android13 Settings动态显示隐藏某一项

总纲 android13 rom 开发总纲说明 目录 1.前言 2.确定目标设置项 3.修改参考 3.1 方法1 3.2 方法2 4.编译测试 5.彩蛋 1.前言 在Android 13系统中,动态显示或隐藏Settings应用中的某一项通常涉及到对Settings应用的内部逻辑进行修改。由于Settings应用是一个系统应用…

Mybatis——快速入门

介绍 MyBatis是一款优秀的持久层&#xff08;Dao层&#xff09;框架&#xff0c;用于简化JDBC的开发。MyBatis 底层是基于 JDBC 实现的&#xff0c;它封装了 JDBC 的大部分功能&#xff0c;使得数据库操作更加便捷和高效。同时&#xff0c;MyBatis 也保留了 JDBC 的灵活性&…

通信原理-思科实验五:家庭终端以太网接入Internet实验

实验五 家庭终端以太网接入Internet实验 一实验内容 二实验目的 三实验原理 四实验步骤 1.按照上图选择对应的设备&#xff0c;并连接起来 为路由器R0两个端口配置IP 为路由器R1端口配置IP 为路由器设备增加RIP&#xff0c;配置接入互联网的IP的动态路由项 5.为路由器R1配置静…

锁相环 vivado FPGA

原理 同步状态/跟踪状态&#xff1a;相位差在2kπ附近&#xff0c;频率差为0到达上述状态的过程称为捕获过程锁相环的捕获带&#xff1a;delta w的最大值&#xff0c;大于这个值的话就不能捕获鉴相器&#xff08;PD-phase discriminator&#xff09;&#xff1a;相乘加LPF&…

Vue3 FileReader:readAsBinaryString() 过时,要使用readAsArrayBuffer来代替。

1、先上张图&#xff1a; 2、官网 developer.mozilla.org https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader/readAsBinaryString ​​​​​​​FileReader接口的 readAsBinaryString() 方法用于开始读取指定 Blob 或 File 对象的内容。当读操作完成后&#xff0…

免杀笔记 -->API的整理Shellcode加密(过DeFender)

最近更新频率明显下降我懒&#xff0c;那么今天就来记录一下我们的一些常用的API的整理以及ShellCode的加密。 1.WinAPI整理 问我为什么要整理&#xff1f; 就是用起来的时候要左翻右翻 &#xff1a;&#xff1a; 烦死了 1.VirtualAlloc VirtualAlloc(NULL,sizeof(buf),MEM_…

Redis 7.x 系列【29】集群原理之自动故障转移

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Redis 版本 7.2.5 源码地址&#xff1a;https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 案例演示3. 工作原理3.1 故障检测3.2 排名3.3 延迟等待3.4 投票3.5 上位 1.…

大型语言模型的生物医学知识图优化提示生成

大型语言模型的生物医学知识图优化提示生成 https://arxiv.org/abs/2311.17330 https://github.com/BaranziniLab/KG_RAG 大型语言模型的生物医学知识图优化提示生成 摘要 KG-RAG框架&#xff0c;较好的结合了生物医学知识图谱SPOKE和LLM的优势。SPOKE是一个开放知识图谱&…

东京裸机云多IP服务器全面分析

东京裸机云多IP服务器是一种提供多IP地址分配和高性能网络服务的云计算解决方案&#xff0c;广泛应用于需要多IP管理和高稳定性的网络应用。下面将从几个方面具体介绍东京裸机云多IP服务器&#xff0c;rak部落为您整理发布东京裸机云多IP服务器的全面分析。 在数字化时代&#…

深入探讨:如何在Shopee平台上安全运营多个店铺?

在Shopee平台上&#xff0c;卖家如何避免店铺被关联&#xff1f;这是一个关乎账号安全和业务持续性的重要问题。Shopee严格规定每个卖家只能拥有一个店铺&#xff0c;以维护市场竞争公平和购物体验的稳定性。如果你开了多个店铺被平台判定关联&#xff0c;会面临冻结或封禁的风…