本文主要讲解Linux中/etc/fstab /etc/mtab /proc/mounts这三个文件的作用以及不同之处。

转自http://haohaozhang.blog.51cto.com/9176600/1681827/

/etc/fstab

运维都知道的文件,若想把mount的disk和dir设置为每次开机自动加载,那么就要把相关信息写到这个文件中。当用”mount -a“命令自动mount的时候,也会去读这个文件。例如:

1
2
LABEL=/hadoop/9 /hadoop/9 ext3 defaults,noatime,nodiratime,noauto 0 2
LABEL=/hadoop/10 /hadoop/10 ext3 defaults,noatime,nodiratime,noauto 0 2

/etc/mtab

这个文件主要是用mount命令的时候,系统根据实际mount的情况生成的数据,例如:

1
2
/dev/sdb1 /hadoop/9 ext3 rw,noatime,nodiratime 0 0
/dev/sdc1 /hadoop/10 ext3 rw,noatime,nodiratime 0 0

/proc/mounts

这个文件是/proc/self/mounts的软链接,/proc下面的文件都是保存在内存中的,是内核自动生成的。所以/proc/mounts比/etc/mtab文件能更加真实的反映当前mount的情况。

场景应用:

服务器中有一块盘因为有坏道,被umount了,通过"df -h"就查看不到这块盘的信息了。

或者你使用"chmod 000 /dir",把这块盘设为不能读不能写。

这时如果你管理了1000台服务器,你需要知道你的服务器中哪些盘是被umount了,你会怎么做?

这里分享一个SHELL脚本,可以给你提供思路:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function check_disks {
  for in `awk '$3~/ext3/ {printf" %s ",$2}' /etc/fstab` ; do
    fsdev=""
    fsdev=`awk -v m=$m '$2==m {print $1}' /proc/mounts`;
    if [ -z "$fsdev" ] ; then
      msg_="$msg_ $m(u)"
    else
      msg_="$msg_`awk -v m=$m '$2==m { if ( $4 ~ /^ro,/ ) {printf"%s(ro)",$2 } ; }' /proc/mounts`"
    fi
  done
  if [ -z "$msg_" ] ; then
    echo "disks ok" exit 0
  else
    echo "$msg_" exit 2
  fi
}

脚本首先通过比较/etc/fstab和/proc/mounts中的不同之处,得到被umount的盘,然后再把ro(read only)的盘也分析出来

Linux中/etc/fstab /etc/mtab /proc/mounts这三个文件的分析与比较 分区表位置的更多相关文章

  1. 在Xshell中上传下载文件到本地(linux中从多次ssh登录的dbserver里面的文件夹)

    在Xshell中上传下载文件到本地(linux中从多次ssh登录的dbserver里面的文件夹) 1 列出所有需要copy的sh文件 -bash-4.1$ ll /mysqllog/osw/*.sh ...

  2. Linux中权限(r、w、x)对于目录与文件的意义

    Linux中权限(r.w.x)对于目录与文件的意义 一.权限对于目录的意义 1.首先要明白的是目录主要的内容是记录文件名列表和子目录列表,而不是实际存放数据的地方. 2.r权限:拥有此权限表示可以读取 ...

  3. Linux 中/var/spool/postfix/maildrop目录下堆积大量小文件 如何删除

      Linux 中/var/spool/postfix/maildrop目录下堆积大量小文件 如何删除 1.先删除maildrop目录下的通知邮件文件 命令:find /var/spool/postf ...

  4. linux中/etc/fstab文件删除或修改了,导致系统无法启动

    在linux中,/etc/fstab文件是磁盘挂载的问题,若该文件不小心给修改了,或者被删除了,那么就会导致系统无法重启.因为/etc/fstab文件是记录磁盘挂载的信息,若该文件出现了问题,那么对应 ...

  5. 1.1 Linux中的进程 --fork、孤儿进程、僵尸进程、文件共享分析

    操作系统经典的三态如下: 1.就绪态 2.等待(阻塞) 3.运行态 其转换状态如下图所示: 操作系统内核中会维护多个队列,将不同状态的进程加入到不同的队列中,其中撤销是进程运行结束后,由内核收回. 以 ...

  6. Linux中让终端输入变为非阻塞的三种方法

    介绍 在linux下每打开一个终端,系统自动的就打开了三个文件,它们的文件描述符分别为0,1,2,功能分别是"标准输入"."标准输出"和"标准错误输出 ...

  7. linux中利用fstab实现磁盘分区自动挂载

    如何格式化磁盘.给磁盘分区以及挂载,参考我的另一篇博客: https://www.cnblogs.com/mediocreWorld/p/11123786.html 博客中有一个格式化分区的命令: m ...

  8. Linux中查找当前目录下占用空间最大的前10个文件

    du命令 计算出单个文件或者文件夹的磁盘空间占用 -a或--all:包含全部的文件系统: --block-size=<区块大小>:以指定的区块大小来显示区块数目: -h或--human-r ...

  9. linux中cat more less head tail 命令区别

    1.cat 显示文件连接文件内容的工具: cat 是一个文本文件查看和连接工具.查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名. 比如:[root@localhost ~]# ca ...

随机推荐

  1. Golang学习--开篇

    最近开始接收一个新项目,是使用Golang写的,需要重新捡起Golang来,于是就有了这个系列博客. Golang的环境配置,我就不说了,让我们直接开始. Golang官网:https://golan ...

  2. TFTP通信原理

    TFTP的通信流程 TFTP共定义了五种类型的包格式,格式的区分由包数据前两个字节的Opcode字段区分,分别是: · l 读文件请求包:Read request,简写为RRQ,对应Opcode字段值 ...

  3. java的<<左移,>>右移,>>>无符号右移

    >>右移 右移,道在二进制中,假设用一个32位的Int表示一个64,那么高位就都是0,所以当我们把整个二进制数右移,如0100000 >> 2 = 0001000,可以看到右移 ...

  4. Python内置函数(58)——input

    英文文档: input([prompt]) If the prompt argument is present, it is written to standard output without a ...

  5. 2.sublime设置本地远程代码同步

    1.打开编辑器输入框(Ctrl+Shift+P),并执行 2.回车后输入sftp 3.回车个后,右键项目 4.修改配置信息,保存

  6. ssh整合之七注解结合xml形式

    1.我们之前的纯xml的方式,我们的配置文件很多,我们可以使用注解结合xml的方式进行开发,这样的话,我们的配置文件,会少很多,同时,我们可以直接在类中看到配置,这样,我们就可以快速地搭建一个ssh整 ...

  7. JSON(四)——异步请求中前后端使用Json格式的数据进行交互

    json格式的数据广泛应用于异步请求中前后端的数据交互,本文主要介绍几种使用场景和使用方法. 一,json格式字符串 <input type="button" id=&quo ...

  8. python 进程 线程

    进程 线程 操作系统 为什么要有操作系统? 操作系统:操作系统是一个用来协调,管理和控制计算机硬件和软件资源的系统程序.位于底层硬件与应用软件之间 工作方式:向下管理硬件 向上提供接口 切换 1.出现 ...

  9. python/进程线程的总结

    python/进程线程的总结 一.进程和线程的描述: 进程:最小的资源管理单位 线程:最小的执行单位 执行一个进程时就默认执行一个线程(主线程) 进程和线程的工作方式: 串行: 假如共有A.B.C任务 ...

  10. python--IO模块

    IO模块 一 IO模型 分为: 1 阻塞IO (accept recv) 2 非阻塞IO 3  IO多路复用(监听多个链接) 4 异步IO 5 驱动信号模型(不经常使用) 1 阻塞IO (blocki ...