L54.linux命令每日一练 -- 第八章 Linux磁盘与文件系统管理命令 -- umount和df

8.11 umount:卸载文件系统

8.11.1 命令详解

【命令星级】 ★★★★★

【功能说明】

​ umount命令可以卸载已经挂载的文件系统。

【语法格式】

umount [option] [dir|device]
umount [选项] [目录|设备]

说明:

​ 1)在umount命令及后面的选项和目录(或设备)里,每个元素之间都至少要有一个空格。

​ 2)umount卸载可以接挂载点目录,也可以接设备文件。

【选项说明】

​ 表8-13针对该命令的参数选项进行了说明。

​ 表8-13 umount命令的参数选项及说明
在这里插入图片描述

8.11.2 使用范例

​ **范例8-30:**卸载已挂载的光盘。

[root@centos7 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        476M     0  476M   0% /dev
tmpfs           487M     0  487M   0% /dev/shm
tmpfs           487M  7.7M  479M   2% /run
tmpfs           487M     0  487M   0% /sys/fs/cgroup
/dev/sda3        17G   13G  4.1G  77% /
/dev/sda1      1014M  160M  855M  16% /boot
tmpfs            98M     0   98M   0% /run/user/0
/dev/sr0        9.6G  9.6G     0 100% /mnt	#请确认已经挂载,然后再使用卸载命令。
[root@centos7 ~]# umount /mnt	#接挂载点就可以卸载,umount /dev/sr0这种卸载方式也可以。
[root@centos7 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        476M     0  476M   0% /dev
tmpfs           487M     0  487M   0% /dev/shm
tmpfs           487M  7.7M  479M   2% /run
tmpfs           487M     0  487M   0% /sys/fs/cgroup
/dev/sda3        17G   13G  4.1G  77% /
/dev/sda1      1014M  160M  855M  16% /boot
tmpfs            98M     0   98M   0% /run/user/0

​ **范例8-31:**生产场景下强制卸载的例子。

​ 有的时候由于挂载的设备停止了响应(例如NFS),或者在当前挂载点的目录下,直接执行卸载命令就会无法卸载设备,而使用如下方式就可以轻松卸载:

​ 这里简单举例如下,进入到挂载点目录进行卸载尝试。

[root@centos7 ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@centos7 ~]# cd /mnt
[root@centos7 /mnt]# umount /mnt	#因为当前在mnt目录中,所以无法卸载,此处执行方法一,退出当前目录卸载。
umount: /mnt: target is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
[root@centos7 /mnt]# umount -lf /mnt	#方法二:使用-lf参数进行强制卸载。
[root@centos7 /mnt]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        476M     0  476M   0% /dev
tmpfs           487M     0  487M   0% /dev/shm
tmpfs           487M  7.7M  479M   2% /run
tmpfs           487M     0  487M   0% /sys/fs/cgroup
/dev/sda3        17G   13G  4.1G  77% /
/dev/sda1      1014M  160M  855M  16% /boot
tmpfs            98M     0   98M   0% /run/user/0
#已经看不到挂载的内容了。

8.12 df:报告文件系统磁盘空间的使用情况

8.12.1 命令详解

【命令星级】 ★★★★★

【功能说明】

​ 显示文件系统磁盘空号的使用情况。

【语法格式】

df [option] [file]
df [选项] [<文件或目录>]

说明:

​ 1)在df命令及后面的选项和文件目录里,每个元素之间都至少要有一个空格。

​ 2)如果不指定命令后面的文件参数,则会显示所有磁盘分区的使用情况,如果给定文件,则显示此文件所在磁盘分区的使用情况。

【选项说明】

​ 表8-14针对该命令的参数选项进行了说明。

​ 表8-14 df命令的参数选项及说明

在这里插入图片描述

8.12.2 使用范例

8.12.2.1 基础范例

​ **范例8-32:**显示磁盘的使用情况。

[root@centos7 ~]# df
Filesystem     1K-blocks     Used Available Use% Mounted on
devtmpfs          487240        0    487240   0% /dev
tmpfs             497840        0    497840   0% /dev/shm
tmpfs             497840     7776    490064   2% /run
tmpfs             497840        0    497840   0% /sys/fs/cgroup
/dev/sda3       17814528 13560292   4254236  77% /
/dev/sdb1         392558     2301    367731   1% /mnt
/dev/sda1        1038336   163024    875312  16% /boot
tmpfs              99572        0     99572   0% /run/user/0

​ 上述内容各列的说明如表8-15所示。

​ 表8-15 显示磁盘使用情况的各列信息及说明

在这里插入图片描述
​ **注意:**第3列和第4列之和不等于第2列。这是因为默认的每个分区都预留了少量空间供root使用。即使遇到空间已满的情况,root仍然能登录和拥有解决问题所需的工作空间。清单中的Use%列表示普通用户空间使用的百分比,即使这一数字达到了100%,分区仍然留有root使用的空间。

​ **范例8-33:**不加参数和加文件参数的例子。

[root@centos7 ~]# df	#不指定命令后面的文件参数,就会显示所有磁盘分区的使用情况。
Filesystem     1K-blocks     Used Available Use% Mounted on
devtmpfs          487240        0    487240   0% /dev
tmpfs             497840        0    497840   0% /dev/shm
tmpfs             497840     7776    490064   2% /run
tmpfs             497840        0    497840   0% /sys/fs/cgroup
/dev/sda3       17814528 13560292   4254236  77% /
/dev/sdb1         392558     2301    367731   1% /mnt
/dev/sda1        1038336   163024    875312  16% /boot
tmpfs              99572        0     99572   0% /run/user/0
[root@centos7 ~]# df /usr/	#/usr分区在/dev/sda3磁盘上,一般不这样用。
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda3       17814528 13560292   4254236  77% /
[root@centos7 ~]# df /boot/	#/boot分区在/dev/sda1磁盘上,一般不这样用。
Filesystem     1K-blocks   Used Available Use% Mounted on
/dev/sda1        1038336 163024    875312  16% /boot

​ **范例8-34:**了解参数-h的用法。

[root@centos7 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        476M     0  476M   0% /dev
tmpfs           487M     0  487M   0% /dev/shm
tmpfs           487M  7.6M  479M   2% /run
tmpfs           487M     0  487M   0% /sys/fs/cgroup
/dev/sda3        17G   13G  4.1G  77% /
/dev/sdb1       384M  2.3M  360M   1% /mnt
/dev/sda1      1014M  160M  855M  16% /boot
tmpfs            98M     0   98M   0% /run/user/0

​ 使用参数-h后,就能以“1K、234M、2G”这样的人类可读的格式显示容量。

​ **范例8-35:**参数-i显示inode的使用情况。

[root@centos7 ~]# df -i		#也可以多参数同时使用,例如-hi参数。
Filesystem      Inodes IUsed   IFree IUse% Mounted on
devtmpfs        121810   385  121425    1% /dev
tmpfs           124460     1  124459    1% /dev/shm
tmpfs           124460   717  123743    1% /run
tmpfs           124460    16  124444    1% /sys/fs/cgroup
/dev/sda3      8583952 74831 8509121    1% /
/dev/sdb1       102400    16  102384    1% /mnt
/dev/sda1       524288   332  523956    1% /boot
tmpfs           124460     1  124459    1% /run/user/0

​ **范例8-36:**参数-t显示指定类型的磁盘

[root@centos7 ~]# df -t ext4	#-t后面接文件系统类型,如ext2/ext3/ext4/xfs。
Filesystem     1K-blocks  Used Available Use% Mounted on
/dev/sdb1         392558  2301    367731   1% /mnt

[root@centos7 ~]# df -t xfs
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda3       17814528 13560300   4254228  77% /
/dev/sda1        1038336   163024    875312  16% /boot

​ **范例8-37:**参数-T列出了文件系统的类型。

[root@centos7 ~]# df -T
Filesystem     Type     1K-blocks     Used Available Use% Mounted on
devtmpfs       devtmpfs    487240        0    487240   0% /dev
tmpfs          tmpfs       497840        0    497840   0% /dev/shm
tmpfs          tmpfs       497840     7776    490064   2% /run
tmpfs          tmpfs       497840        0    497840   0% /sys/fs/cgroup
/dev/sda3      xfs       17814528 13560300   4254228  77% /
/dev/sdb1      ext4        392558     2301    367731   1% /mnt
/dev/sda1      xfs        1038336   163024    875312  16% /boot
tmpfs          tmpfs        99572        0     99572   0% /run/user/0

8.12.2.2 生产案例

​ **范例8-38:**向磁盘写入数据提示如下错误:No space left on device,然后通过df -h查看磁盘空间,结果发现磁盘没满,那么请问这可能是什么原因?

​ 解答:

​ 可能是inode数量被耗尽了。用df -i可查看inode的使用情况。

​ 导致上述inode满的原因之一有如下几种情况:

​ Linux系统目录/var/spool/clientmqueue(CentOS 5.x默认安装sendmail软件的邮件的临时队列目录)或/var/spool/postfix/maildrop (CentOS 6.x和CentOS 7.x软件的邮件的临时队列目录)很容易被大量小文件占满,导致出现“No space left on device”的错误。

​ 原因分析:

​ 系统中crond定时任务执行的程序有输出内容,输出内容会以邮件形式发给设置定时任务的用户,而若sendmail/postfix服务没有启动,则会产生类似下面代码所示的这些文件,时间长了就会把系统的inode数量耗尽,但是block的数量仍有剩余,所以使用df -h查看空间还有剩余。

在这里插入图片描述
​ 解决方法:

​ 小文件太多,直接用rm -f删除会失败,显示参数过长的错误信息,这是需要用到ls |xargs rm -f命令进行删除。若想要根治,可采用如下方法。

​ 因为主要是由定时任务引起的,所以可在定时任务后加上>/dev/null 2>&1来解决:

00 00 * * * /bin/sh server/scripts/www_bak.sh >/dev/null 2>&1

猜你喜欢

转载自blog.csdn.net/qq_25599925/article/details/125687554