linux运维实战练习-2015年9月01日课程作业(练习)安排

一、作业(练习)内容:

1、复习本次课程所讲的内容

2、总结整理磁盘管理及文件系统管理中设计的各种命令的使用,并附注一定的示例;

   在Linux中,一块磁盘能被使用(可以被访问、被写入、被存储)要有以下三个步骤:

                             (1)进行磁盘分区,及创建分区

                             (2)创建文件系统

                             (3)挂载文件系统   

(1)磁盘分区

         创建分区的命令:

                       fdisk, parted, sfdisk

           fdisk:最多支持在一块硬盘上的15个分区;fdisk提供了一个交互式接口来管理分区,它有许多子命令,分别用于不同的管理功能,所有的操作均在内存中完成,没有直接同步到磁盘

           fdisk  -l :查看当前系统下所有被识别的硬盘及分区情况                      

2015年9月01日课程作业(练习)_insert

           fdisk  -l /dev/[hs]d[a-z]:查看当前系统下所有被识别的硬盘及分区情况 

2015年9月01日课程作业(练习)_编辑器_02

          fdisk  /dev/设备名1:管理设备1的分区

2015年9月01日课程作业(练习)_课程_03

         分区管理子命令:             

              p: 显示现有分区表

              n: 创建新分区

              d: 删除现有分区

              t: 修改分区ID(修改文件系统类型)

              l: 列出所有支持ID类型(可用于判断文件系统的类型)

              w: 保存退出

              q: 放弃修改并退出

              m: 获取帮助

2015年9月01日课程作业(练习)_insert_04

2015年9月01日课程作业(练习)_insert_05

2015年9月01日课程作业(练习)_insert_06

           创建完成之后,查看内核是否已经识别新的分区:

            # cat /proc/partitions

2015年9月01日课程作业(练习)_课程_07

 注意:在Centos6中,新磁盘分区后,内核可直接成功识别,但磁盘已有分区且分区已挂载,剩余磁盘空间在分区后需要让内核重读磁盘分区表后才能查看到(可能要2次以上才能成功读取)

        有三个命令可以让内核重读磁盘分区表:

              CentOS 5: partprobe [DEVICE]

              CentOS 6,7: partx,kpartx

                   partx命令:

                            partx DEVICE

                            partx -a DEVICE

                            partx -a -n M:N DEVICE

                   kpartx命令:

                            kpartx -af DEVICE

(2)创建文件系统:在分区上执行格式化(高级格式化)(只能格式化主分区或逻辑分区)

     要使用某种文件系统,满足两个条件:

                 内核中:支持此种文件系统

                 用户空间:有文件系统管理工具

      1、创建文件系统:mkfs (make filesystem)

               mkfs -t type DEVICE

2015年9月01日课程作业(练习)_课程_08

               mkfs.type DEVICE

2015年9月01日课程作业(练习)_insert_09

      2、文件系统属性查看及调整:

              e2label:查看或设定文件系统的卷标

                   e2lable DEVICE:查看卷标

                   e2lable DEVICE [LABEL]:设定卷标

2015年9月01日课程作业(练习)_insert_10

      3、文件系统检测:fsck: Filesystem check

                    fsck -t type DEVICE

                    fsck.type DEVICE

                         -a: 自动修复错误

                         -r: 交互式修复错误 (修复前需确认)

                         -f: 强制检测

2015年9月01日课程作业(练习)_linux_11

                 注意:修复是将非一致文件删除,而不是修复数据

       4、ext系列文件系统的专用工具:

             创建:

                      mke2fs [OPTION]... DEVICE  

                            -t {ext2|ext3|ext4} :指明创建的文件系统类型

                                mke2fs -t {ext2|ext3|ext4} DEVICE

                            -b {1024|2048|4096} :

                                指明快大小(指明后无法修改,只有重新格式化时再次指定)

                            -L 'LABEL' : 设定卷标

                            -j: mke2fs -t ext3 :将文件系统格式化为日志型文件系统

                            -i #:指明inode与字节的比率,即每多少字节给创建一个inode

                            -N #:指明给文件系统创建多少个inode

                            -m #: 预留磁盘空间占据多大百分比的空间为后期管理使用;

                            -O FEATURE[,...]指明开启文件系统的额外特性

                            -O ^FEATURE:关闭此特性

                                      has_journal:日志特性

            属性查看及调整:

                      blkid:查看ext文件系统属性

                               blkid DEVICE :查看LABEL, UUID, TYPE等属性

2015年9月01日课程作业(练习)_课程_12

                      dumpe2fs:显示ext文件系统每一个快的属性信息

                                 dumpe2fs [OPTION]... DEVICE

                                          -h: 仅显示超级块信息;

2015年9月01日课程作业(练习)_课程_13

                      tune2fs:显示ext系列文件系统的属性,或调整其属性

                                 安全的调整方式,不损害数据

                         tune2fs  [OPTION]... DEVICE

                        -l:显示超级块中的信息;显示整个文件的属性及布局等相关信息;

                        -L 'LABEL':修改卷标;

2015年9月01日课程作业(练习)_课程_14

                        -m #: 调整预留给管理员的管理空间百分比;

                        -j: ext2 --> ext3 把ext2文件格式化为ext3文件系统(安全的方式)

                        -O:文件系统属性的启动或关闭

                        -o:文件系统默认挂载选项的启用或关闭

2015年9月01日课程作业(练习)_insert_15

2015年9月01日课程作业(练习)_linux_16

            检测修复工具;

                     e2fsck :ext文件系统专用的坚持修复工具

                             e2fsck [OPTION]... DEVICE

                                    -y: 自动回答为“yes” 自动修复

                                    -f:force  强制检测

(3)文件系统的挂载和使用

     挂载:将其他文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件系统访问入口的行为,称之为挂载;

     卸载:解除此关联关系的过程

     挂载点:mount point, 建立关联关系的那个目录;及用于作为其他文件系统访问入口的目录

             该目录必须事先存在,建议使用控目录

     注意:挂载点在挂载在之后,其内部原有的文件会被暂时隐藏;建立使用空目录做为挂载点;

     挂载方法:

        mount:通过读取/etc/mtab文件来显示当前系统所有已经挂载的设备;

2015年9月01日课程作业(练习)_编辑器_17

2015年9月01日课程作业(练习)_linux_18

               也可用cat /etc/mtab;查看当前系统所有已经挂载的设备

2015年9月01日课程作业(练习)_编辑器_19

2015年9月01日课程作业(练习)_课程_20

        mount -a:挂载/etc/fstab文件中的所有支持自动挂载的文件系统;

        mount [options] [-o options] DEVICE MOUNT_POINT

2015年9月01日课程作业(练习)_课程_21

           [options]:命令选项

                     -t type:文件系统类型  ,可省略

                     -r: 以“只读”方式挂载此文件系统

                     -w: 以“读写”方式挂载此文件系统

                     -n:每个文件系统在挂载时都会自动更新/etc/mtab文件,-n用于禁止此功能;

                         此时,如果想查看挂载的所有文件系统:cat /proc/mounts

                     -a: 自动挂载所有支持自动挂载的设备;

                     -B:绑定目录至另一个目录上;

          [-o options]:挂载选项

                    async:异步模式 ,一般默认

                    sync: 同步模式

                    atime/noatime:是否更新访问时间戳;

                    diratime/nodiratime:是否更新目录的访问时间戳;

                    auto/noauto: 是否允许此设备被自动挂载;

                    exec/noexec:是否允许执行此文件系统上应用程序;

                    dev/nodev:是否支持在此设备上使用设备文件;

                    suid/nosuid:是否支持此设备上的文件使用SUID权限

                    remount:重新挂载

                    ro :只读

                    rw :读写

                    user/nouser: 是否允许普通挂载此设备;

                    acl:是否支持此设备上使用facl;

                    defaults:挂载选项未指明时默认的属性

                             如rw, suid, dev, exec, auto, nouser, and async

          DEVICE: 要挂载的设备

                              (1) 设备文件:/dev/sda5

                              (2) 卷标:-L 'LABEL'

                              (3) UUID:-U 'UUID'

                              (4) 伪文件系统名称

          MOUNT_POINT: 挂载点

2015年9月01日课程作业(练习)_insert_22

2015年9月01日课程作业(练习)_课程_23

      卸载方法:

              umount:卸载命令

                   # umount DEVICE

                 或# umount MOUNT_POINT

2015年9月01日课程作业(练习)_编辑器_24

         注意:正在被某进程访问的设备是不可以被卸载的

         查看正在访问指定挂载点的进程:

                # fuser -v MOUNT_POINT

         终止所有正在访问指定的挂载点的进程:

                # fuser -km MOUNT_POINT

2015年9月01日课程作业(练习)_课程_25

           问题:在Centos7中无法使用fuser,yum了也不行

2015年9月01日课程作业(练习)_insert_26

(4)交换分区:必须使用独立的磁盘分区

            1、创建交换分区

                       fdisk  /dev/DEVICE  (可为主分区,也可为逻辑分区)

2015年9月01日课程作业(练习)_编辑器_27

2015年9月01日课程作业(练习)_课程_28

                       使用t命令修改其ID为82

2015年9月01日课程作业(练习)_linux_29

2015年9月01日课程作业(练习)_insert_30

            2、创建交换分区文件系统

                 mkswap [option] DEVICE

                 mkswap  -L 'LABEL' DEVICE

2015年9月01日课程作业(练习)_linux_31

                 free命令:

                          查看memory和swap的使用状态

                               -m: 以MB为单位

                               -g: 以GB为单位

                               -k :以k为单位

2015年9月01日课程作业(练习)_linux_32

                swapon:启用交换分区

                        swapon [option] [DEVICE]

                                -a: 激活所有交换分区

                                -p PRIORITY: 设定其优先级;

2015年9月01日课程作业(练习)_编辑器_33

                swapoff:禁用交换分区

                        swapoff [option] [DEVICE]

2015年9月01日课程作业(练习)_linux_34

(5)文件系统等空间占用信息的查看工具:

             df: disk free  显示文件系统磁盘空间使用信息

                    -l:仅显示本地文件系统的磁盘空间使用情况

                    -h: human-readable 单位换算

2015年9月01日课程作业(练习)_课程_35

                    -i: 显示inode的数量,及使用情况

2015年9月01日课程作业(练习)_linux_36

                   -P: 以Posix兼容的格式输出            

             du: disk usage 显示目录及目录下的文件大小

                     du  目录 :显示目录及每一个文件的大小

                         -h: human-readable 单位换算

                         -s: summary:显示目录的及目录下的所有文件的总大小

2015年9月01日课程作业(练习)_linux_37

(6)文件系统相关挂载配置文件:

             /etc/fstab:

                        定义开机可自动挂载的文件系统

     每行定义一个文件系统都会创建一行信息,如下:

2015年9月01日课程作业(练习)_编辑器_38

    要挂载的设备或伪文件系统  挂载点  文件系统类型  挂载选项 转储频率  自检次序

          要挂载的设备:

                   设备文件、LABEL=、UUID=、伪文件系统名称

          挂载选项:

                 defaults

          转储频率:多长时间备份一次

                 0: 不转储

                 1: 每天转储

                 2: 每隔一天转储

          自检次序:

                 0:不自检

                 1:首先自检,通常只有/才为1

                 2:

                ...

(7)文件系统上的链接文件:

     硬链接文件:访问同一文件的不同路径,即两个路径指向同一个inode

                   创建方式:

                        cp -l 文件1 文件2 :创建硬链接文件2

                     或 ln  文件1 文件2

      注意:

           硬链接文件不能对目录进行;不能跨分区进行

           指向同一个inode的多个不同路径;创建文件的硬链接会增加inode的引用计数;

           除了删除以外,其他操作都相互同步

           删除互不影响,删除硬链接仅是删除其一个访问路径,只到最后一个路径被删除;

      符号链接:是一个完全独立的新文件,链接文件的数据指向另一个文件路径;

                创建方式:     

                         ln  -s 文件1 文件2 :创建符号链接文件2

                         ln  -sv 文件1 文件2 :显示创建过程

      注意:

           符号链接文可以对目录进行;可以跨分区;

           指向的是另一个文件路径;而非inode;

           对文件创建符号链接不会增加其引用计数;

           删除符号链接文件不影响原文件,删除原文件,符号链接文件为失败的链接;

           符号链接文件的大小是指向原文件的路径字符串所包含的字节数

           用户对符号链接文件的权限取决于符号链接文件指向的文件的权限

3、创建一个10G的文件系统,类型为ext4,要求开机可自动挂载至/mydata目录 

                 (1)创建分区              

2015年9月01日课程作业(练习)_编辑器_39

                 (2)创建文件系统

2015年9月01日课程作业(练习)_insert_40

2015年9月01日课程作业(练习)_insert_41

               (3)设置自动挂载

2015年9月01日课程作业(练习)_课程_42