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

news2024/11/15 4:55:22

上午

1、环境准备

(1)yum源 (一个云仓库+pepl仓库)
 [root@web ~]# vim /etc/yum.repos.d/hh.repo 
 [a]
 name=a
 baseurl=file:///mnt
 gpgcheck=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 firewalld
 Removed 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/config
 SELINUX=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=nginx
 baseurl=file:///root/soft/
 gpgcheck=0
 enable=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]# ls
 404.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/bash
 inotifywait -mrq -e modify,create,delete,attrib,move /share/ | while read events
 do
             rsync -av /share/ root@10.0.0.31:/bakpu
             echo "`date +%F\ %T`出现时间$events" >> /var/log/rsync.log 2>&1
 done
 [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 user01
 New 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 Drivers
     smb_share       Disk      samba service
     IPC$            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 2024
   1.mp4                               N  5882370  Mon Jul 22 13:17:38 2024
   1.txt                               N        0  Mon Jul 22 16:27:44 2024
   3.jpg                               N   114639  Mon Jul 22 11:44:14 2024
   a.txt                               N       10  Mon Jul 22 16:01:59 2024
   passwd                              N        0  Mon Jul 22 11:43:15 2024
   2.txt                               N        0  Mon Jul 22 16:34:17 2024
           18855936 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.coloradmin.cn/o/1942656.html

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

相关文章

软件测试09 自动化测试技术(Selenium)

重点/难点 重点&#xff1a;理解自动化测试的原理及其流程难点&#xff1a;Selinum自动化测试工具的使用 目录 系统测试 什么是系统测试什么是功能测试什么是性能测试常见的性能指标有哪些 自动化测试概述 测试面临的问题 测试用例数量增多&#xff0c;工作量增大&#xff…

数据结构初阶(C语言)-二叉树

一&#xff0c;树的概念与结构 树是⼀种非线性的数据结构&#xff0c;它是由 n&#xff08;n>0&#xff09; 个有限结点组成⼀个具有层次关系的集合。把它叫做树是因为它看起来像⼀棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 1.有⼀个特殊的结点&a…

ubuntu22安装拼音输入法

专栏总目录 一、安装命令&#xff1a; sudo apt update sudo apt install fcitx sudo apt install fcitx-pinyin 二、切换输入法

吴恩达深度学习笔记1 Neural Networks and Deep Learning

参考视频&#xff1a;(超爽中英!) 2024公认最好的【吴恩达深度学习】教程&#xff01;附课件代码 Professionalization of Deep Learning_哔哩哔哩_bilibili Neural Networks and Deep Learning 1. 深度学习引言(Introduction to Deep Learning) 2. 神 经 网 络 的 编 程 基 础…

数据库安全:MySQL安全配置,MySQL安全基线检查加固

「作者简介」&#xff1a;冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础著作 《网络安全自学教程》&#xff0c;适合基础薄弱的同学系统化的学习网络安全&#xff0c;用最短的时间掌握最核心的技术。 这一章节我们需…

【目标检测】Anaconda+PyTorch(GPU)+PyCharm(Yolo5)配置

前言 本文主要介绍在windows系统上的Anaconda、PyTorch、PyCharm、Yolov5关键步骤安装&#xff0c;为使用yolo所需的环境配置完善。同时也算是记录下我的配置流程&#xff0c;为以后用到的时候能笔记查阅。 Anaconda 软件安装 Anaconda官网&#xff1a;https://www.anaconda…

微软蓝屏事件:网络安全与系统稳定性的反思与前瞻

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

MFC:以消息为基础的事件驱动系统和消息映射机制

以消息为基础的事件驱动系统和消息映射机制 (1)消息 A.What&#xff08;什么是消息&#xff09; 本质是一个数据结构&#xff0c;用于应用程序不同部分之间进行通信和交互 typedef struct tagMSG {HWND hwnd; // 接收该消息的窗口句柄UINT message; // 消息标…

二分查找的实现

前提&#xff1a;数组是有序的 #include <stdio.h>//作用&#xff1a;利用二分查找法查找数据 //返回值&#xff1a;数据在数组中的索引 //找到了&#xff1a;真实索引 没找到&#xff1a;返回-1 int search(int arr[], int num, int len) {//查找范围int min 0;int …

DC系列靶场---DC 2靶场的渗透测试(一)

信息收集 Nmap扫描 nmap -sV -p- -sC -T4 172.30.1.141 域名解析 echo 172.30.1.141 dc-2 >> /etc/hosts 目录枚举 gobuster dir -u http://172.30.1.141 -w work/lab/CTF/ATT_CK_01/SecLists-master/Discovery/Web-Content/big.txt -x .php,.rar,.html,.zip -t 20 -b…

将代码转换为图表的 6大工具

文章目录 将代码转换为图表的 6大工具 - 前言1、[Diagrams](https://diagrams.mingrammer.com/) - Python2、[Go-Diagrams](https://github.com/blushft/go-diagrams) - Go3、[Mermaid ](https://mermaid.js.org/) - JavaScript4、[PlantUML](https://plantuml.com/zh/) - Java…

VUE之---slot插槽

什么是插槽 slot 【插槽】&#xff0c; 是 Vue 的内容分发机制&#xff0c; 组件内部的模板引擎使用slot 元素作为承载分发内容的出口。slot 是子组件的一个模板标签元素&#xff0c; 而这一个标签元素是否显示&#xff0c; 以及怎么显示是由父组件决定的。 VUE中slot【插槽】…

Druid【基础 01】是什么+主要特点+设计原则+架构+数据结构(简单入门Druid)

Druid入门 1. 是什么2. 主要特点3. 三个设计原则4. Architecture 架构5. 数据结构5.1 DataSource 结构5.2 Segment 结构 Druid 非中文官网&#xff0c;内容不少且介绍的挺详细的&#xff0c;需要英文阅读能力或者翻译工具进行辅助。 1. 是什么 先看看官网怎么说&#xff1a; A…

C#初级——基础语法

前言 学习Unity游戏编程开发会使用到两种语言&#xff0c;一种是C#&#xff0c;另一种是Javascript。有学习C语言基础和想学unity游戏开发的萌新一般都推荐学习C#基础编程&#xff0c;以此来快速上手unity的学习。 本次学习使用到的工具为&#xff1a;VS2022 环境安装 首先&a…

对比预测编码表示学习

对比预测编码表示学习 引言 文章主要提出如下几点&#xff1a;首先将高维数据压缩到更加紧凑的潜在嵌入&#xff08;latent embdding&#xff09;空间&#xff0c;在这个空间中条件预测更容易被建模。第二&#xff0c;在这个潜在空间中使用自回归模型&#xff0c;以对未来的多…

PingCAP 王琦智:下一代 RAG,tidb.ai 使用知识图谱增强 RAG 能力

导读 随着 ChatGPT 的流行&#xff0c;LLMs&#xff08;大语言模型&#xff09;再次进入人们的视野。然而&#xff0c;在处理特定领域查询时&#xff0c;大模型生成的内容往往存在信息滞后和准确性不足的问题。如何让 RAG 和向量搜索技术在实际应用中更好地满足企业需求&#…

【C++11】智能指针深度详解(什么是智能指针?为什么需要智能指针?如何使用智能指针?)

目录 一、前言 二、 智能指针的引入 --- 内存泄露 &#x1f4a2;什么是内存泄漏&#xff1f;&#x1f4a2; &#x1f4a2;内存泄漏有那些危害&#xff1f;&#x1f4a2; &#x1f4a2;内存泄漏的原因&#xff1f;&#x1f4a2; &#x1f4a2;解决内存泄漏的方法 &#x…

go-kratos 学习笔记(3) google buf 管理proto

google buf 管理proto&#xff0c;以及从新归档文件的目录结构 什么是 BSR&#xff1f; BSR 将 Protobuf 文件作为版本化模块进行存储和管理&#xff0c;以便个人和组织可以轻松使用和发布他们的 API。 BSR 带有可浏览的 UI、依赖项管理、API 验证、版本控制、生成的文档以及…

手把手教你CrossOver 24.0.0 for Mac 破解版安装激活2024图文教程

兔八哥爱分享要和大家分享的是一款可以让我们直接在Mac上安装和运行Windows软件和游戏的软件——CrossOver。兔八哥爱分享这次带来的是24.0.0 测试版本。 CrossOver已支持相当多的Windows应用&#xff0c;如Office、AutoCAD、Windows Media Player 9、Photoshop、Dreamweaver、…

Java并发的笔记

打算记录自己的学习情况&#xff0c;尽量不摆烂&#xff0c;另外一件事要有始有终&#xff0c;要弄完 如果多个线程处理同一个变量&#xff0c;读跟写都保证不了 2024.7.22》》》》》》》》》》》》 2.1.1volatile的实现原理 volatile不会引起线程上下文的切换和调度 一致性更…