《超容易的Linux系统管理入门书》经典阅读

上传人:沈*** 文档编号:206380496 上传时间:2023-05-03 格式:PDF 页数:51 大小:11MB
收藏 版权申诉 举报 下载
《超容易的Linux系统管理入门书》经典阅读_第1页
第1页 / 共51页
《超容易的Linux系统管理入门书》经典阅读_第2页
第2页 / 共51页
《超容易的Linux系统管理入门书》经典阅读_第3页
第3页 / 共51页
资源描述:

《《超容易的Linux系统管理入门书》经典阅读》由会员分享,可在线阅读,更多相关《《超容易的Linux系统管理入门书》经典阅读(51页珍藏版)》请在装配图网上搜索。

1、 Linux 文件系统与磁盘管理 从本章节可以学习到:?Linux 文件系统及分区?Linux 文件属性及权限管理?如何设置文件属性和权限?磁盘管理命令?Linux 交换空间管理?Linux 磁盘冗余阵列 125 文件系统用于存储文件、目录、链接及文件相关信息,Linux 文件系统以“/”为最顶层,所有文件和目录,包括设备信息都在此目录下。本章首先介绍 Linux 文件系统的相关知识点,如文件的权限及属性、与文件有关的一些命令,然后介绍磁盘管理的相关知识,如磁盘管理的命令、交换空间管理等。本章最后的综合示例,演示如何通过监控及时发现磁盘空间的问题。4.1 文件系统概述 与 Windows 通过

2、盘符管理各个分区不同,Linux 把所有文件和设备都当做文件来管理,这些文件都在根目录下,同时 Linux 中的文件名区分大小写。本节主要介绍文件的属性和权限管理。4.1.1 Linux 分区简介 在 Windows 系统中经常会碰到 C 盘盘符(C:)标识,而 Linux 系统没有盘符的概念,可以认为 Linux 下所有文件和目录都存在于一个分区内。Linux 系统中每一个硬件设备(如硬盘、内存等)都映射到系统的一个文件。IDE 接口设备在 Linux 系统中映射的文件以“hd”为前缀;SCSI 设备映射的文件以“sd”为前缀。具体的文件命名规则是以英文字母排序的。如系统中第 1个 IDE

3、设备为 hda,第 2 个为 hdb。了解了硬件设备在 Linux 中的表示形式后,再来了解一下分区信息。通过示例 4-1 查看系统中的分区信息。【示例 4-1】rootCentOS#df h Filesystem Size Used Avail Use%Mounted on/dev/sda1 9.9G 4.2G 5.3G 45%/dev/sda2 10G 1G 9G 10%/data/dev/sdc1 1004M 18M 936M 2%/data1/dev/sda1 1004M 18M 936M 2%/data2 在对硬盘进行分区时,第 1 个分区为号码 1(如 sda1),第 2 个分区为

4、 sda2,依此类推。分区分为主分区和逻辑分区,每一块硬盘设备最多只能由 4 个主分区构成,任何一个扩展分区都要占用一个主分区号码,主分区和扩展分区数量最多为 4 个。在进行系统分区时,主分区一般设置为激活状态,用于在系统启动时引导系统。分区时每个分区的大小可以由用户自由指定。Linux 分区格式与 Windows 不同,Windows 常见的格式有 FAT32、FAT16、NTFS,而 Linux 常见的分区格式为 swap、ext3、ext4 等。具体如何分区可参考本章后面的内容。126 4.1.2 文件的类型 Linux 系统是一种典型的多用户系统,不同的用户处在不同的地位,拥有不同的权

5、限。为了保护系统的安全性,对于同一资源来说,不同的用户具有不同的权限,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。示例 4-2 用于认识 Linux系统中的文件类型。【示例 4-2】#查看系统文件类型#普通文件 rootCentOS#ls-l /etc/resolv.conf -rw-r-r-.1 root root 0 Mar 30 22:20/etc/resolv.conf#目录文件 rootCentOS#ls-l/dr-xr-xr-x.2 root root 4096 Mar 30 22:26 bin#普通文件 rootCentOS#ls -l/etc/

6、shadow-1 root root 2922 Mar 31 06:06/etc/shadow#块设备文件 rootCentOS#ls-l /dev/sdb brwrw-1 root disk 8,16 Apr 22 22:14/dev/sdb#链接文件 rootCentOS#ls-l /dev/systty lrwxrwxrwx 1 root root 4 Apr 22 22:14/dev/systty-tty0#字符设备文件 rootCentOS#ls-l /dev/tty0#socket文件 rootCentOS#ls-l/dev/log srw-rw-rw-1 root root 0

7、Apr 22 22:14/dev/log#管道文件 在示例 4-2的输出代码中:?第 1列表示文件的类型,文件类型如表 4.1所示。?第 2 列表示文件权限,如文件权限是“rw-r-r-”表示文件所有者可读、可写,文件所归属的用户组可读,其他用户可读此文件。?第 3列为硬链接个数。?第 4列表示文件所有者,就是文件属于哪个用户。?第 5列表示文件所属的组。?第 6列表示文件大小,通过不同的参数可以显示为可读的格式,如 k/M/G 等。?第 7列表示文件修改时间。?第 8列表示文件名或目录名。127 表 4.1 Linux 文件类型 参数 说明-表示普通文件,是 Linux 系统中最常见的文件,

8、普通文件第 1 位标识是“-”,比如常见的脚本等文本文件和常用软件的配置文件,经常执行的命令是可执行的二进制文件也属于此类 d 表示目录文件,第 1 位标识为“d”,和 Windows 中文件夹概念类似 l 表示符号链接文件,第 1位标识为“l”,软链接相当于 Windows 中的快捷方式,而硬链接则可以认为是具有相同内容的不同文件,不同之处在于更改其中一个,另外一个文件内容会做同样改变 d/c 表示设备文件,第 1 位标识是“d”或“c”。第 1 位标识为“d”表示是块设备文件。块设备文件的方位每次以块为单位,比如 512 字节或 1024 字节等,类似 Windows 中的簇的概念。块设备

9、可随机读取。如硬盘,光盘属于此类。而字符设备文件每次访问以字节为单位,不可随机读取,如常用的键盘属于此类 s 表示套接字文件,第 1 位标识为“s”,程序间可通过套接字进行网络数据通信 p 表示管道文件,第 1 位标识为“p”,管道是 Linux 系统中一种进程通信的机制。生产者写数据到管道中,消费者可以通过进程读取数据 4.1.3 文件的属性与权限 为了系统的安全性,Linux 对于文件赋予了 3 种属性:可读、可写和可执行。在 Linux系统中,每个文件都有唯一的属主,同时 Linux 系统中的用户可以属于同一个组,通过权限位的控制定义了每个文件的属主,同组用户和其他用户对该文件具有不同的

10、读、写和可执行权限。(1)读权限:对应标志位为“r”,表示具有读取文件或目录的权限,对应的使用者可以查看文件内容。(2)写权限:对应标志位为“w”,用户可以变更此文件,比如删除、移动等。写权限依赖于该文件父目录的权限设置。示例 4-3 说明了即使文件其他用户权限标志位为可写,但其他用户仍然不能操作此文件。【示例 4-3】test2CentOS test1$ls-l/data/|grep test drwxr-xr-x 2 root root 4096 May 30 16:18 test-rwxr-xr-x 1 root root 190926848 Apr 18 11:42 test.file

11、-rwxr-xr-x 1 root root 10240 Apr 18 17:00 test.tar drwxr-xr-x 3 test1 users 4096 May 30 19:05 test1 drwxr-xr-x 3 test2 users 4096 May 30 18:55 test2 drwxr-xr-x 4 root root 4096 Apr 18 17:01 testdir test2CentOS test1$ls-l total 0-rw-rw-rw-1 test1 test1 0 May 30 19:05 s#虽然文件具有写权限,但仍然不能删除 128 test2Cent

12、OS test1$rm-f s rm:cannot remove s:Permission denied(3)执行权限:对应标志位为“x”,一些可执行文件比如 C 程序必须有可执行权限才可以运行。对于目录而言,可执行权限表示其他用户可以进入此目录,如目录没有可执行权限,则其他用户不能进入此目录。说明:文件拥有执行权限,才可以运行。比如二进制文件和脚本文件。目录文件要有执行权限才可以进入。在 Linux 系统中文件权限标志位由 3 部分组成,如“-rwxrw-r-”,第 1 位表示普通文件,然后“rwx“表示文件属主具有可读可写可执行的权限,“rw-”表示与属主属于同一组的用户就有读写权限,“r

13、-”表示其他用户对该文件只有读权限。“-rwxrwxrwx”为文件最大权限,对应编码为 777,表示任何用户都可以读写和执行此文件。4.1.4 改变文件所有权 chown 和 chgrp 一个文件属于特定的所有者,如果更改文件的属主或属组可以使用 chown 和 chgrp 命令。chown 命令可以将文件变更为新的属主或属组,只有 root 用户或拥有该文件的用户才可以更改文件的所有者。如果拥有文件但不是 root 用户,只可以将组更改为当前用户所在的组。chown 常用参数说明如表 4.2所示。表 4.2 chown 常用参数说明 参数 说明-f 禁止除用法消息之外的所有错误消息-h 更改

14、遇到的符号链接的所有权,而不是符号链接指向的文件或目录的所有权。如未指定则更改链接指向目录或文件的所有权-H 如果指定了-R 选项,并且引用类型目录的文件的符号链接在命令行上指定,chown 变量会更改由符号引用的目录的用户标识(和组标识,如果已指定)和所有在该目录下的文件层次结构中的所有文件 -L 如果指定了-R 选项,并且引用类型目录的文件的符号在命令行上指定或在遍历文件层次结构期间遇到,chown 命令会更改由符号链接引用的目录的用户标识和在该目录之下的文件层次结构中的所有文件 -R 递归的更改指定文件夹的所有权,但不更改链接指向的目录 chown 经常使用的参数为“R”参数,表示递归的

15、更改目录文件的属主或属组。更改时可以使用用户名或用户名对应的 UID,更改属组类似。操作方法如示例 4-4所示。【示例 4-4】rootCentOS#useradd test rootCentOS#mkdir/data/test rootCentOS#ls-l /data|grep test drwxr-xr-x.2 root root 4096 Jun 4 20:39 test 129 rootCentOS#chown-R test.users/data/test rootCentOS#ls-l /data|grep test drwxr-xr-x.2 test users 4096 Jun

16、 4 20:39 test rootCentOS#su-test testCentOS$cd/data/test testCentOS test$touch file testCentOS test$ls-l total 0-rw-rw-r-.1 test test 0 Jun 4 20:39 file testCentOS test$chown root.root file chown:changing ownership of file:Operation not permitted rootCentOS#useradd test2 rootCentOS#grep test2/etc/pa

17、sswd test2:x:502:502:/home/test2:/bin/bash rootCentOS#mkdir/data/test2#按用户ID更改目录所有者 rootCentOS#chown-R 502.users/data/test2 rootCentOS#ls-l/data/|grep test2 drwxr-xr-x.2 test2 users 4096 Jun 4 20:44 test2#更改文件所有者 rootCentOS test#chown test2.users file rootCentOS test#ls-l file -rw-rw-r-.1 test2 user

18、s 0 Jun 4 20:39 file Linux 系统中 chgrp 命令用于改变指定文件或目录所属的用户组。使用方法与 chown 类似,此处不再赘述。chgrp命令操作方法如示例 4-5所示。【示例 4-5】#更改文件所属的用户组 rootCentOS test#ls-l file -rw-rw-r-.1 test test 0 Jun 4 20:39 file rootCentOS test#groupadd testgroup rootCentOS test#chgrp testgroup file rootCentOS test#ls-l file -rw-rw-r-.1 tes

19、t testgroup 0 Jun 4 20:39 file 4.1.5 改变文件权限 chmod chmod 是用来改变文件或目录权限的命令,可以将指定文件的拥有者改为指定的用户或组,用户可以是用户名或用户 ID,组可以是组名或组 ID,文件是以空格分开的要改变权限的文件列表,支持通配符。只有文件的所有者或 root 用户可以执行,普通用户不能将自己的文件改变成其他的拥有者。更改文件权限时 u 表示文件所有者,g 表示文件所属的组,o 表示其他用户,a 表示所有。通过此可以详细控制文件的权限位。chmod 除了可以使用符号更改文件权限外,还可以利用数字来更改文件权限。“r”对应数字 4,“w

20、”对应数字 2,“x”对应数字 1,如可读写则为 4+2=6。chmod 常用参数如表 4.3 所示,操作方法如示例 4-6130 所示。表 4.3 chmod 命令常用参数说明 参数 说明-c 显示更改的部分的信息-f 忽略错误信息-h 修复符号链接-R 处理指定目录及其子目录下的所有文件-v 显示详细的处理信息-reference 把指定的目录/文件作为参考,把操作的文件/目录设成参考文件/目录相同拥有者和群组-from 只有当前用户和群组跟指定的用户和群组相同时才进行改变-help 显示帮信息-version 显示版本信息【示例 4-6】#新建文件test.sh test2CentOS$

21、cat test.sh#!/bin/sh echo Hello World#文件所有者没有可执行权限 test2CentOS$./test.sh-bash:./test.sh:Permission denied test2CentOS$ls-l test.sh -rw-rw-r-1 test2 test2 29 May 30 19:39 test.sh#给文件所有者加上可执行权限 test2CentOS$chmod u+x test.sh test2CentOS$./test.sh#设置文件其他用户不可以读 test2CentOS$chmod o-r test.sh test2CentOS$l

22、ogout rootCentOS test1#su-test1 test1CentOS$cd/data/test2 test1CentOS test2$cat test.sh cat:test.sh:Permission denied#采用数字设置文件权限 test2CentOS$chmod 775 test.sh test2CentOS$ls-l test.sh -rwxrwxr-x 1 test2 test2 29 May 30 19:39 test.sh#将文件 file1.txt 设为所有人皆可读取:test2CentOS$chmod ugo+r file1.txt#将文件 file1

23、.txt 设为所有人皆可读取:test2CentOS$chmod a+r file1.txt 131#将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入:test2CentOS$chmod ug+w,o-w file1.txt file2.txt#将 ex1.py 设定为只有该文件拥有者可以执行:test2CentOS$chmod u+x ex1.py#将目前目录下的所有文件与子目录皆设为任何人可读取:test2CentOS$chmod-R a+r*#收回所有用户对file1的执行权限 test2CentOS$chmod

24、a-x file1 4.2 磁盘管理命令 Linux 提供了丰富的磁盘管理命令,如查看硬盘使用率、进行硬盘分区、挂载分区等,本节主要介绍此方面的知识。4.2.1 查看磁盘空间占用情况 df df 命令用于查看硬盘空间的使用情况,还可以查看硬盘分区的类型或 inode 节点的使用情况等。df 常用参数说明如表 4.4所示,常见用法如示例 4-7所示。表 4.4 df 命令常用参数说明 参数 说明-a 显示所有文件系统的磁盘使用情况,包括 0 块(block)的文件系统,如/proc 文件系统-k 以 k字节为单位显示-i 显示 i 节点信息,而不是磁盘块-t 显示各指定类型的文件系统的磁盘空间使

25、用情况-x 列出不是某一指定类型文件系统的磁盘空间使用情况(与 t选项相反)-T 显示文件系统类型【示例 4-7】#查看当前系统所有分区使用情况。h表示以可读的方式显示当前磁盘空间,另外类似的参数有k、m等 rootCentOS test#df-ah Filesystem Size Used Avail Use%Mounted on proc 0 0 0 -/proc sysfs 0 0 0 -/sys tmpfs 495M 72K 495M 1%/dev/shm/dev/sdb1 485M 33M 427M 8%/boot/dev/sdc1 1004M 18M 936M 2%/data3/d

26、ev/sda1 1004M 18M 936M 2%/data 132#查看每个分区inode节点占用情况 rootCentOS test#df-i Filesystem Inodes IUsed IFree IUse%Mounted on tmpfs 126568 3 126565 1%/dev/shm/dev/sdb1 128016 38 127978 1%/boot/dev/sdc1 65280 11 65269 1%/data3/dev/sda1 65280 14 65266 1%/data#显示分区类型 rootCentOS test#df-T Filesystem Type 1K-b

27、locks Used Available Use%Mounted on tmpfs tmpfs 506272 72 506200 1%/dev/shm/dev/sdb1 ext4 495844 33744 436500 8%/boot/dev/sdc1 ext3 1027768 17688 957872 2%/data3/dev/sda1 ext3 1027768 17696 957864 2%/data#显示指定文件类型的磁盘使用状况 rootCentOS test#df-t ext3 Filesystem 1K-blocks Used Available Use%Mounted on/de

28、v/sdc1 1027768 17688 957872 2%/data3/dev/sda1 1027768 17696 957864 2%/data 4.2.2 查看文件或目录所占用空间 du du 命令可以查看磁盘或某个目录占用的磁盘空间,常见的应用场景如硬盘满时需要找到占用空间最多的目录或文件。du 常见的参数如表 4.5所示。表 4.5 du 命令常用参数说明 参数 说明 a 显示全部目录和其次目录下的每个档案所占的磁盘空间 b 大小用 bytes 来表示(默认值为 k bytes)c 最后再加上总计(默认值)h 打印出可识别的格式,如 1KB、234MB、5GB-max-depth=N

29、 只打印层级小于等于指定数值的文件夹的大小 s 只显示各档案大小的总合 x 只计算同属同一个档案系统的档案 L 计算所有的档案大小 du的一些使用方法如示例 4-8所示,更多用法可参考“man du”。【示例 4-8】#统计当前文件夹的大小,默认不统计软链接指向的目的文件夹 rootCentOS data#du-sh .276M .#按层级统计文件夹大小,在定位占用磁盘大的文件夹时比较有用 133 rootCentOS data#du-max-depth=1-h 4.0K ./logs 194M ./vmware-tools-distrib 32K ./file_backup 8.0K ./l

30、ink 16K ./lost+found 20M ./zip 20K ./bak 276M .4.2.3 调整和查看文件系统参数 tune2fs tune2fs 用于查看和调整文件系统参数,类似于 Windows 下的异常关机启动时的自检,Linux下此命令可设置自检次数和周期。tune2fs常用参数如表 4.6所示。表 4.6 tune2fs 命令常用参数说明 参数 说明-l 查看详细信息-c 设置自检次数,每挂载一次 mount,conut就会加 1,超过次数就会强制自检-e 设置当错误发生时内核的处理方式-i 设置自检天数,d表示天,m为月,w 为周-m 设置预留空间 -j 用于文件系统

31、格式转换 -L 修改文件系统的标签-r 调整系统保留空间 使用方法如示例 4-9所示。【示例 4-9】#查看分区信息 rootCentOS data#tune2fs -l /dev/sda1 tune2fs 1.41.12(17-May-2010)Filesystem volume name:Last mounted on:#部分结果省略 Journal backup:inode blocks#设置半年后自检 rootCentOS data#tune2fs-i 1m/dev/hda1#设置当磁盘发生错误时重新挂载为只读模式 rootCentOS data#tune2fs-e remount-r

32、o/dev/hda1#设置磁盘永久不自检 rootCentOS data#tune2fs-c-1-i 0/dev/hda1 134 4.2.4 格式化文件系统 mkfs 当完成硬盘分区以后要进行硬盘的格式化,mkfs 系列对应的命令用于将硬盘格式化为指定格式的文件系统。mkfs 本身并不执行建立文件系统的工作,而是去调用相关的程序来执行。例如,若在-t参数中指定 ext2,则 mkfs会调用 mke2fs来建立文件系统。使用 mkfs时如省略指定“块数”参数,mkfs 会自动设置适当的块数,此命令不仅可以格式化 Linux 格式的文件系统,还可以格式化 DOS或 Windows下的文件系统。m

33、kfs.ext3常用的参数如表 4.7所示。表 4.7 mkfs 命令常用参数说明 参数 说明-V 详细显示模式-t:给定档案系统的型式,Linux的预设值为 ext3-c 操作之前检查分区是否有坏道-l 记录坏道的资料 block 指定 block 的大小-L:建立卷标 Linux 系统中 mkfs 支持的文件格式取决于当前系统中有没有对应的命令,比如要把分区格式化为 ext3 文件系统,系统中要存在对应的 mkfs.ext3 命令,其他类似。【示例 4-10】#查看当前系统mkfs命令支持的文件系统格式 rootCentOS data#ls /sbin/mkfs.*-l-rwxr-xr-x

34、.1 root root 22168 Feb 22 13:02/sbin/mkfs.cramfs-rwxr-xr-x.5 root root 60432 Feb 22 07:50/sbin/mkfs.ext2-rwxr-xr-x.5 root root 60432 Feb 22 07:50/sbin/mkfs.ext3-rwxr-xr-x.5 root root 60432 Feb 22 07:50/sbin/mkfs.ext4-rwxr-xr-x.5 root root 60432 Feb 22 07:50/sbin/mkfs.ext4dev lrwxrwxrwx.1 root root 7

35、 Mar 31 00:31/sbin/mkfs.msdos-mkdosfs lrwxrwxrwx.1 root root 7 Mar 31 00:31/sbin/mkfs.vfat-mkdosfs#将分区格式化为ext3文件系统 rootCentOS data#mkfs-t ext3/dev/sda1 mke2fs 1.41.12(17-May-2010)Filesystem label=OS type:Linux Block size=4096(log=2)Fragment size=4096(log=2)Stride=0 blocks,Stripe width=0 blocks 12264

36、0 inodes,489974 blocks 24498 blocks(5.00%)reserved for the super user First data block=0 Maximum filesystem blocks=503316480 135 15 block groups 32768 blocks per group,32768 fragments per group 8176 inodes per group Superblock backups stored on blocks:32768,98304,163840,229376,294912 Writing inode t

37、ables:done Creating journal(8192 blocks):done Writing superblocks and filesystem accounting information:done This filesystem will be automatically checked every 20 mounts or 180 days,whichever comes first.Use tune2fs-c or-i to override.4.2.5 挂载/卸载文件系统 mount/umount mount 命令用于挂载分区,对应的卸载分区为 umount。这两个命

38、令一般由 root 用户执行。除可以挂载硬盘分区外,光盘、内存都可以使用该命令挂载到用户指定的目录。mount常用参数如表 4.8所示。表 4.8 mount 命令常用参数说明 参数 说明-V 显示程序版本-h 显示帮助信息-v 显示详细信息-a 加载文件/etc/fstab 中设置的所有设备-F 需与-a参数同时使用。所有在/etc/fstab 中设置的设备会被同时加载,可加快执行速度-f 不实际加载设备。可与-v 等参数同时使用以查看 mount 的执行过程-n 不将加载信息记录在/etc/mtab文件中 -L 加载指定卷边的文件系统-r 挂载为只读模式-w 挂载为读写模式-t 指定档案系

39、统的型态,通常不必指定。mount 会自动选择正确的型态。常见的文件类型有ext2、msdos、nfs、iso9660、ntfs 等-o 指定加载文件系统时的选项。如 noatime 每次存取时不更新 inode的存取时间-h 显示在线帮助信息 在 Linux 操作系统中挂载分区是一个使用非常频繁的命令。mount 命令可以挂载多种介质,如硬盘、光盘、NFS 等,U 盘也可以挂载到指定的目录。mount使用方法如示例 4-11。【示例 4-11】#挂载指定分区到指定目录 136 rootCentOS/#mount/dev/sda1/data#将分区挂载为只读模式 rootCentOS/#mou

40、nt -o ro/dev/sda1/data2#挂载光驱,使用ISO文件时可避免将文件解压,可以挂载后直接访问 rootCentOS test#mount -t iso9660 /dev/cdrom /cdrom mount:block device/dev/sr0 is write-protected,mounting read-only rootCentOS test#ls/cdrom/CentOS_BuildTag Packages isolinux images repodata#挂载NFS rootCentOS test#mount t nfs 192.168.1.91:/data/

41、nfsshare /data/nfsshare#挂载/etc/fstab里面的所有分区 rootCentOS test#mount a#挂载Windows下分区格式的分区,fat32分区格式可指定参数vfat rootCentOS test#mount-t ntfs/dev/sdc1/mnt/usbhd1 挂载点必须是一个目录,如果该目录有内容,挂载成功后该目录原有的文件将会看不到,卸载后又可以重新使用。如果要挂载的分区经常使用需要自动挂载,可以将分区挂载信息加入/etc/fstab。该文件说明如下:/dev/sda3 /data ext3 noatime,acl,user_xattr 0 2

42、?第 1 列表示要挂载的文件系统的设备名称,可以是硬盘分区、光盘、U 盘或 ISO 文件,还可以是 NFS。?第 2列表示挂载点,挂载点实际就是一个目录,可以为空,也可以不为空?第 3 列为挂载的文件类型,Linux 能支持大部分分区格式,Windows 下的分区系统也可支持。如常见的 ext3、ext2、iso9660、NTFS 等。?第 4 列为设置选项,各个选项用逗号隔开。如设置为 defaults 表示 rw、suid、dev、exec、auto、nouser 和 async。?第 5 列为文件备份设置。此处为 1 的话,表示要将整个里的内容备份;为 0的话,表示不备份。在这里一般设置

43、为 0。?最后 1 列为是否运行 fsck 命令检查文件系统。0 表示不运行,1 表示每次都运行,2表示非正常关机或达到最大加载次数或达到一定天数才运行。4.2.6 基本磁盘管理 fdisk fdisk 为 Linux 系统下的分区管理工具,类似 Windows 下的 PQMagic 等工具软件。分过区装过操作系统的读者都知道硬盘分区是必要的和重要的。fdisk 的帮助如示例 4-12 所示。【示例 4-12】/dev/sda1 1004M 18M 936M 2%/data/dev/sr0 4.1G 4.1G 0 100%/cdrom 137 rootCentOS test#fdisk /de

44、v/sdc WARNING:DOS-compatible mode is deprecated.Its strongly recommended to switch off the mode(command c)and change display units to sectors(command u).Command(m for help):h h:unknown command Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a

45、 partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partitions system id u change display/entry units v verify the partition ta

46、ble w write table to disk and exit x extra functionality(experts only)以上参数中常用的参数说明如表 4.9所示。表 4.9 fdisk 命令常用参数说明 参数 说明 d 删除存在的硬盘分区 n 添加分区 p 查看分区信息 w 保存变更信息 详细分区过程如示例 4-13 所示。【示例 4-13】rootCentOS#fdisk -l Disk/dev/sda:10.7 GB,10737418240 bytes#部分结果省略 Disk/dev/sdb:21.5 GB,21474836480 bytes#部分结果省略#创建分区并格

47、式化硬盘 rootCentOS#fdisk /dev/sda#部分结果省略#查看帮助 Command(m for help):h 138 h:unknown command Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS p

48、artition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partitions system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality(experts only)#创建新分区 Command(m for help):n Command

49、 action e extended p primary partition(1-4)p#1表示创建主分区 Partition number(1-4):1#参数选择默认 First cylinder(1-1305,default 1):Using default value 1 Last cylinder,+cylinders or+sizeK,M,G(1-1305,default 1305):Using default value 1305#保存更改 Command(m for help):w The partition table has been altered!Calling ioct

50、l()to re-read partition table.Syncing disks.#查看分区情况 rootCentOS#fdisk -l#Disk/dev/sda:10.7 GB,10737418240 bytes Device Boot Start End Blocks Id System/dev/sda1 1 1305 10482381 83 Linux Disk/dev/sdb:21.5 GB,21474836480 bytes Device Boot Start End Blocks Id System/dev/sdb1 *1 523 4194304 83 Linux Parti

51、tion 1 does not end on cylinder boundary.139/dev/sdb2 523 905 3072000 83 Linux Partition 2 does not end on cylinder boundary./dev/sdb3 905 1036 1048576 82 Linux swap/Solaris/dev/sdb4 1036 2611 12655616 5 Extended/dev/sdb5 1036 2611 12654592 83 Linux#将新建的分区进行格式化 rootCentOS#mkfs.ext3/dev/sda1 mke2fs 1

52、.41.12(17-May-2010)Filesystem label=OS type:Linux Block size=4096(log=2)Fragment size=4096(log=2)Stride=0 blocks,Stripe width=0 blocks 655360 inodes,2620595 blocks 131029 blocks(5.00%)reserved for the super user First data block=0 Maximum filesystem blocks=2684354560 80 block groups 32768 blocks per

53、 group,32768 fragments per group 8192 inodes per group Superblock backups stored on blocks:32768,98304,163840,229376,294912,819200,884736,1605632 Writing inode tables:done Creating journal(32768 blocks):done Writing superblocks and filesystem accounting information:done This filesystem will be autom

54、atically checked every 33 mounts or 180 days,whichever comes first.Use tune2fs-c or-i to override.#编辑系统分区表,加入新增的分区 rootCentOS#vi/etc/fstab /dev/sda1/data1 ext3 defaults 0 2#退出保存#创建挂载目录 rootCentOS#mkdir/data1 rootCentOS#mount-a#查看分区已经正常挂载 rootCentOS#df-h Filesystem Size Used Avail Use%Mounted on/dev/

55、sdb1 4.0G 1008M 2.8G 27%/tmpfs 495M 0 495M 0%/dev/shm/dev/sdb5 12G 415M 11G 4%/data/dev/sdb2 2.9G 69M 2.7G 3%/usr/local/dev/sda1 9.9G 151M 9.2G 2%/data1 140#文件测试 rootCentOS#cd/data1 rootCentOS data1#touch test.txt 4.3 交换空间管理 Linux 中的交换空间在系统物理内存被用尽时使用。如果系统需要更多的内存资源,而物理内存已经用尽,内存中不活跃的页就会被交换到到交换空间中。交换空间

56、位于硬盘上,速度不如物理内存。交换空间的总大小一般设置为计算机物理内存的两倍。Linux 系统支持虚拟内存系统,主要用于存储应用程序及其使用的数据信息,虚拟内存大小主要取决于应用程序和操作系统。如果交换空间太小,则可能无法运行希望运行的所有应用程序,导致页面频繁地在内存和磁盘之间交换,从而导致系统性能下降。如果交换空间太大,则可能会浪费磁盘空间。因此系统交换分区的大小需要合理设置。在 Linux 2.6 内核上,可以通过设置/etc/sysctl.conf 中的 vm.swappiness值来调整系统的 swappiness。如果虚拟内存大于物理内存,操作系统可以在空闲时将所有当前进程换出到磁

57、盘上,并且能够提高系统的性能。如果希望将应用程序的活动保留在内存中,并且不需要大量的交换,可以设置较小的虚拟内存。而桌面环境配置比较大的虚拟内存则有利于运行大量的应用程序。4.4 磁盘冗余阵列 RAID RAID(Redundant Array of Inexpensive Disks)的基本目的是把多个小型廉价的硬盘合并成一组大容量的硬盘,用于解决数据冗余性并降低硬件成本,使用时如同单一的硬盘。RAID 技术有两种:硬件 RAID 和软件 RAID。基于硬件的系统从主机之外独立地管理 RAID子系统,并且它在主机处把每一组 RAID 阵列只显示为一个磁盘。软件 RAID 在系统中实现各种 R

58、AID级别,因此不需要 RAID控制器。RAID 分为各种级别,比较常见的有 RAID 0、RAID 1、RAID 5、RAID 10 和 RAID 01。这些 RAID类型的定义如下:?RAID 0 数据被随机分片写入每个磁盘,此种模式下存储能力等同于每个硬盘的存储能力之和,但并没有冗余性,任何一块硬盘的损坏都将导致数据的丢失。?RAID 1 称作镜像,会在每个成员磁盘上写入相同的数据,此种模式比较简单,可以141 提供高度的数据可用性,它目前仍然很流行。但对应的存储能力有所降低,如两块相同硬盘组成 RAID 1,则容量为其中一块硬盘的大小。?RAID 5 是最普遍的 RAID类型。RAID

59、 5更适合于小数据块和随机读写的数据。RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。磁盘空间利用率要比 RAID 1高,存储成本相对较低。RAID 5不单独指定奇偶盘,而是在所有磁盘上交叉地存取数据及奇偶校验信息。组建 RAID 5至少需要 3 块硬盘。如 N块硬盘组成 RAID 5,则硬盘容量为 N-1,如果其中一块硬盘损坏,数据可以根据其他硬盘存储的校验信息恢复。4.5 Linux 磁盘管理常见问题 初学者接触 Linux 文件系统或进行磁盘管理时,难免会遇到一些问题,本节针对一些典型的问题给出解答。4.5.1 Linux 如何添加硬盘 Linux 硬盘的添加是非常方

60、便的,当把新硬盘与计算机连接后可使用 fdisk 命令来操作,具体步骤可参考 4.2.6 节。4.5.2 如何找出占用空间较大的目录或文件 查找占用空间较大的目录或文件可以使用以下方法:rootCentOS/#du-max-depth=1-h lib 32M lib/firmware 52K lib/terminfo 1.1M lib/udev 2.9M lib/kbd 101M lib/modules 4.0K lib/security 136M lib rootCentOS/#find/usr-size+50M/usr/lib/locale/locale-archive rootCentO

61、S/#ls-lhtr/usr/lib/locale/locale-archive-rw-r-r-.1 root root 95M Mar 30 22:23/usr/lib/locale/locale-archive 4.5.3 No space left on device 如何处理 出现此种提示一般有两个原因:一种是对应分区的空间被占满,另外一种是分区的142 inode 节点被用尽。第 2 种情况比较容易被忽略。查看当前系统情况如下:#查看硬盘空间 rootCentOS/#df-h Filesystem Size Used Avail Use%Mounted on/dev/sdb5 12G

62、 598M 11G 6%/data/dev/sdb2 2.9G 2.9G 2.7G 3%/usr/local#查看inode占用情况 rootCentOS/#df-i Filesystem Inodes IUsed IFree IUse%Mounted on/dev/sdb1 262144 33420 228724 13%/tmpfs 126568 1 126567 1%/dev/shm/dev/sdb5 791520 3768 787752 1%/data/dev/sdb2 192000 43 191957 1%/usr/local/dev/sda1 655360 12 655348 1%/

63、data1 4.5.4 删除了文件,空间为何没有释放 一个很大的文件删除后,用 df 命令查看硬盘空间并没有被释放,可在 Linux系统中通过rm 删除文件将会从文件系统的目录结构上解除链接,如果此时文件正在被程序读写,比如示例中的 httpd 服务,这时 httpd 服务仍然可以读写该文件,导致空间没有被释放。安全的删除文件方法可参考 4.5.5 节,定位过程如下:rootCentOS logs#ls-lhtr#部分结果省略-rw-r-r-1 root root 184M Jun 5 10:42 access_log rootCentOS logs#rm access_log#查找正在读写该

64、文件对应的进程 rootCentOS logs#lsof|grep access_log Httpd 20081 daemon 8w REG 104,4 192164616 58064899/data/logs/access_log(deleted)#根据进程号查找进程相关信息 rootCentOS logs#ps-ef|grep 20081 daemon 20081 20038 0 May28?00:00:00/usr/local/apache2/bin/httpd-k start 4.5.5 如何清空正在读写的超大文件 一般在进行 Web 服务时,要记录用户的访问日志,经过一定的时间后日志

65、文件会变得很大,当文件正在读写时直接删除文件会导致硬盘空间未被释放,用户无法重新访问该文件,只有进行服务重启才能恢复,采用以下方法可以清空一个大文件而保留 inode,使用 tail命令可以查看最新写入的内容:#清空大文件并保留inode节点 rootCentOS logs#ls-l error_log 143-rw-r-r-1 root root 49M Jun 5 10:51 error_log rootCentOS logs#echo error_log rootCentOS logs#ls-l error_log -rw-r-r-1 root root 1 Jun 5 10:52 er

66、ror_log 4.6 综合示例监控硬盘空间 实际应用中需要定时检测磁盘空间,在超过指定阈值后告警,然后可以提前删除不必要的文件,避免因为程序满了而发生问题。示例 4-14 演示了如何在单机情况下监控硬盘空间。如果管理的服务器很多,需要批量部署检测程序,在磁盘即将满时及时发出告警。【示例 4-14】rootCentOS logs#cat -n diskMon.sh 1#!/bin/sh 2#用于记录执行日志 3 function LOG()4 5 echo$(/bin/date+%Y-%m-%d%H:%M:%S-d 0 days ago)$1 6 7#告警发送详细逻辑,此处为演示 8 function sendmsg()9 10 echo sendmsg 11 12#主处理逻辑 13 function process()14 15 /bin/df-h|sed-e 1d|while read Filesystem Size Used Avail Use Mounted 16 do 17 18 LOG$Filesystem Use$Use 19 Use=echo$Use|awk-F%pri

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!