通过NFS服务我们可以方便的读写服务器上的文件,一起来实战Ubuntu16环境安装和使用NFS;

文章概要

本次实战由以下步骤组成:

  1. 列举环境信息;
  2. 在192.168.119.128安装NFS服务,将此机器作为NFS服务器;
  3. 在192.168.119.155安装NFS客户端,将此机器作为NFS客户端;
  4. 在客户端验证NFS服务;
  5. 客户端取消挂载;

环境信息

本次实战用到两台Ubuntu16的机器,如下图所示:

安装NFS服务

在192.168.119.128机器上执行以下操作:

  1. 创建一个文件夹作为共享文件目录:/usr/local/work/nfs;
  2. 给文件夹增加读写权限:
chmod a+rw /usr/local/work/nfs
  1. apt更新:
apt-get update
  1. 安装NFS服务应用:
apt-get install nfs-kernel-server
  1. 配置NFS服务目录,打开文件/etc/exports,在尾部新增一行,内容如下:
/usr/local/work/nfs *(rw,sync,no_subtree_check)

这一行的意思是将/usr/local/work/nfs作为服务文件夹向客户端开放,*表示任何IP都可以访问,rw是读写权限,sync是同步权限,no_subtree_check表示如果输出目录是一个子目录,nfs服务器不检查其父目录的权限;

6. 执行以下命令重启服务,使配置生效:

/etc/init.d/nfs-kernel-server restart

至此,NFS服务就准备好了,接下来我们去准备NFS客户端;

安装NFS客户端

在192.168.119.155机器上执行以下操作:

  1. 安装客户端应用:
apt-get install -y nfs-common
  1. 用mkdir命令创建一个文件夹/usr/local/work/nfs-mount;
  2. 将NFS服务器的/usr/local/work/nfs目录挂载到NFS客户端的/usr/local/work/nfs-mount目录,执行以下命令:
mount 192.168.119.128:/usr/local/work/nfs  /usr/local/work/nfs-mount
  1. 执行命令/usr/local/work/nfs看一下挂载信息,如下:
root@maven:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 480820 0 480820 0% /dev
tmpfs 99828 4856 94972 5% /run
/dev/sda1 59732092 12798824 43876016 23% /
tmpfs 499136 0 499136 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 499136 0 499136 0% /sys/fs/cgroup
/dev/loop5 12288 12288 0 100% /snap/kubectl/328
/dev/loop3 83328 83328 0 100% /snap/core/3887
/dev/loop0 12288 12288 0 100% /snap/kubectl/303
/dev/loop4 83712 83712 0 100% /snap/core/4017
/dev/loop1 12288 12288 0 100% /snap/kubectl/346
/dev/loop2 83584 83584 0 100% /snap/core/4110
tmpfs 99828 0 99828 0% /run/user/0
192.168.119.128:/usr/local/work/nfs 59732224 3238912 53435904 6% /usr/local/work/nfs-mount

注意最下面一行的内容:192.168.119.128:/usr/local/work/nfs 59732224 3238912 53435904 6% /usr/local/work/nfs-mount,已经将远程文件夹挂载到了本地文件夹;

至此,NFS客户端安装完毕,挂载成功;

验证NFS服务

在192.168.119.155机器上执行以下操作,:

  1. 在NFS客户端上执行以下命令,将本机的IP地址信息输出到NFS目录下的test.txt文件中:
ip addr > /usr/local/work/nfs-mount/test.txt
  1. 在NFS服务端执行命令<font color="blue>cat /usr/local/work/nfs/test.txt,可以看到上一步生成的test.txt文件的内容,证明NFS服务已经生效,如下:
root@nfs:~# cat /usr/local/work/nfs/test.txt
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:65:66:54 brd ff:ff:ff:ff:ff:ff
inet 192.168.119.155/24 brd 192.168.119.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe65:6654/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:f0:b9:8e:5d brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 scope global docker0
valid_lft forever preferred_lft forever

可见NFS的服务已经正常运行;

客户端取消挂载

  1. 如果客户端不再需要NFS服务,想取消这个文件夹的挂载,执行以下命令即可:
umount /usr/local/work/nfs-mount

注意:不要在/usr/local/work/nfs-mount目录执行这个命令,否则会如下报错:

root@maven:/usr/local/work/nfs-mount# umount /usr/local/work/nfs-mount
umount.nfs4: /usr/local/work/nfs-mount: device is busy

应该退出/usr/local/work/nfs-mount之后再执行umount命令;

2. 取消挂载后,去NFS客户端的/usr/local/work/nfs-mount目录下看已经没有文件了;

3. 取消挂载后,去NFS服务端的/usr/local/work/nfs目录下看,文件还在,不受影响;

至此,Ubuntu16环境安装和使用NFS的实战就全部结束了,希望以上操作能助您快速搭建NFS服务;

欢迎关注我的公众号:程序员欣宸

https://github.com/zq2599/blog_demos

Ubuntu16环境安装和使用NFS的更多相关文章

  1. 阿里云学生服务器搭建网站-Ubuntu16.04安装php开发环境

    阿里云学生服务器搭建网站(2)-Ubuntu16.04安装php开发环境  优秀博文:https://www.linuxidc.com/Linux/2016-10/136327.htm https:/ ...

  2. Ubuntu16.04安装后开发环境配置和常用软件安装

    Ubuntu16.04安装后1.安装常用软件搜狗输入法+编辑器Atom+浏览器Chome+视频播放器vlc+图像编辑器GIMP Image Editor安装+视频录制软件RcordMyDesktop安 ...

  3. Hadoop完全分布式环境搭建(四)——基于Ubuntu16.04安装和配置Hadoop大数据环境

    [系统环境] [安装配置概要] 1.上传hadoop安装文件到主节点机器 2.给文件夹设置权限 3.解压 4.拷贝到目标文件夹 放在/opt文件夹下,目录结构:/opt/hadoop/hadoop-2 ...

  4. ubuntu16.04安装jdk,tomcat

    ubuntu16.04安装jdk,tomcat 最近装了一下tomcat,网上的教程很多,我也试了很多次,但是有一些教程关于tomcat配置是错误的,让我走上了歧途.差点重装系统,还好王总及时出手帮助 ...

  5. Ubuntu16.04安装cuda9.0+cudnn7.0

    Ubuntu16.04安装cuda9.0+cudnn7.0 这篇记录拖了好久,估计是去年6月份就已经安装过几遍,然后一方面因为俺比较懒,一方面后面没有经常在自己电脑上跑算法,比较少装cuda和cudn ...

  6. Ubuntu16.04安装Ambari 2.7.3

    概念了解 Ambair介绍 Apache Ambari是一个用于支持大数据软件供应 管理与监控软件.它也是一个分布式软件,分为Ambair-Server与Ambari-Client两个部分.在生产环境 ...

  7. Ubuntu16.04安装使用wps

    Ubuntu16.04安装使用wps 1.wps官网下载并安装wps 此处以Debian安装包为例,官网下载路径 http://www.wps.cn/product/wpslinux/# 直接安装: ...

  8. ubuntu16.04安装wordpress

    ubuntu16.04安装wordpress和centos7安装wordpress存在一定的差异. 当然共性大于差异. 共性是lamp环境. wordpress的必备环境. 先共性再差异. 一.搭建l ...

  9. ubuntu16.04安装cuda8.0试错锦集

    ubuntu16.04安装cuda8.0试错锦集 参考文献: [http://www.jianshu.com/p/35c7fde85968] [http://blog.csdn.net/sinat_1 ...

随机推荐

  1. C# 监听值的变化

    1.写一个监听值变化的类 public class MonitorValueChange { private Visibility myValue; public Visibility MyValue ...

  2. 【API进阶之路】逆袭!用关键词抽取API搞定用户需求洞察

    摘要: 老大说,我这份用关键词抽取API搞定的用户需求洞察报告,简直比比市场调研的科班人士做得还好. 最近这半个月的午饭,那可是相当不错,市场老大天天请吃饭,不是外面下馆子,就是从家带饺子.说是感谢我 ...

  3. 跟我一起学.NetCore之选项(Options)核心类型简介

    前言 .NetCore中提供的选项框架,我把其理解为配置组,主要是将服务中可供配置的项提取出来,封装成一个类型:从而服务可根据应用场景进行相关配置项的设置来满足需求,其中使用了依赖注入的形式,使得更加 ...

  4. 精讲响应式WebClient第4篇-文件上传与下载

    本文是精讲响应式WebClient第4篇,前篇的blog访问地址如下: 精讲响应式webclient第1篇-响应式非阻塞IO与基础用法 精讲响应式WebClient第2篇-GET请求阻塞与非阻塞调用方 ...

  5. 第7篇scrum冲刺(5.27)

    一.站立会议 1.照片 2.工作安排 成员 昨天已完成的工作 今天的工作安排 困难 陈芝敏  学习云开发,云函数调用以及数据的前后端传递  今天实现云词库搭建,随机获取并显示,对云开发有更深的认识   ...

  6. 基于伪分布式Hadoop搭建Hive平台详细教程

    一.搭建环境的前提条件 环境:Linux系统 Hadoop-2.6.0 MySQL 5.6 apache-hive-2.3.7 这里的环境不一定需要和我一样,基本版本差不多都ok的,所需安装包和压缩包 ...

  7. C#-接口(Interface)详解

    定义 在 C# 语言中,类之间的继承关系仅支持单重继承,而接口是为了实现多重继承关系设计的.一个类能同时实现多个接口,还能在实现接口的同时再继承其他类,并且接口之间也可以继承.无论是表示类之间的继承还 ...

  8. 同事跳槽阿里P7,甩我一份微服务架构设计模式文档,看完我也去

    给所有微服务架构开发者的忠告,我想对你们说: 第一,要记住微服务不是解决所有问题的万能“银弹”. 第二,编写整洁的代码和使用自动化测试至关重要,因为这是现代软件开发的基础. 第三,关注微服务的本质,即 ...

  9. 【洛谷日报#26】GCC自带位运算系列函数

    文章转自 洛谷 谈到GCC的黑科技,大家想到的一定是这句: #pragma GCC optimize (3)//吸氧 抑或是这句: #pragma GCC diagnostic error " ...

  10. C#委托链

    使用Delegate.Combine时,注意两点: 1. 不可以将不同签名的两个委托相互Combine. 2.如果将有返回值的两个委托A 和 B Combine,那么返回值是最后一个委托的的返回值,也 ...