N25第7周作业

1、创建一个10G分区,并格式为ext4文件系统;
   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;

   (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;

]# fdisk /dev/sdb #划出一个大小为10G的分区
]# partx -a /dev/sdb
]# mke2fs -t ext4 -b 2048 -L MYDATA -m 2 /dev/sdb3 #格式化分区
]# tune2fs -o acl /dev/sdb3   #添加acl特性
]# mount -o noatime,noauto /dev/sdb3 /mnt

2、创建一个大小为1G的swap分区,并创建好文件系统,并启用之;

]# fdisk /dev/sdb
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap / Solaris)
##修改创建的分区类型 改为swap

]# mkswap /dev/sdb2
]# swapon /dev/sdb2

3、写一个脚本
   (1)、获取并列出当前系统上的所有磁盘设备;

   (2)、显示每个磁盘设备上每个分区相关的空间使用信息;

#!/bin/bash
#
declare -a disk_dev
disk_dev=$(ls /dev/[sh]d* | grep -o '/dev/sd[[:alpha:]]\>')
echo -en "系统包含磁盘:\n${disk_dev[@]}\n"
echo
echo -en "系统磁盘分区使用情况如下:\n"
fdisk -l $(ls /dev/[sh]d[a-z][0-9])

4、总结RAID的各个级别及其组合方式和性能的不同;

RAID:
old Redundant Arrays of Inexpensive Disks (廉价磁盘冗余阵列)
new Redundant Arrays of Independent Disks (独立磁盘冗余阵列)
Berkeley: A case for Redundent Arrays of Inexpensive Disks RAID

功能:

提高IO能力:磁盘并行读写;
提高耐用性:磁盘冗余来实现。但是raid不能取代数据备份,raid只是减少磁盘对于数据
的影响。人为操作数据无法恢复。
级别:多块磁盘组织在一起的工作方式有所不同;

RAID实现的方式:

外接式磁盘阵列:通过扩展卡提供适配能力
内接式RAID:主板集成RAID控制器
Software RAID:
级别:level
RAID-0:0, 条带卷,strip;
RAID-1: 1, 镜像卷,mirror;
RAID-2
..
RAID-5:
RAID-6
RAID10
RAID01
RAID-0:
读、写性能提升;
可用空间:Nmin(S1,S2,…)(所有磁盘中的最小值,下同)
无容错能力最少磁盘数:2, 2+
RAID-1:
读性能提升、写性能略有下降;
可用空间:1
min(S1,S2,…)
有冗余能力
最少磁盘数:2, 2+
RAID-4:
1101, 0110, 1011 (对应位做亦或计算,相同得0,相反得1) 第三块做校验盘。 如果
一块坏了,那就是降级进行使用。缺陷:单块盘做检验盘,该盘压力过大,是性能瓶
颈。
改进方案:使用一块盘做空闲盘,热备
RAID-5:
读、写性能提升。
可用空间:(N-1)min(S1,S2,…)
有容错能力:1块磁盘
最少磁盘数:3, 3+,
原理同raid4,也可有热备盘,与raid4区别,三块盘轮流做检验盘,有左对称和右对称
方案;
多块盘做亦或运算,结果存放到校验盘,X1亦或X2亦或X3亦或X4
RAID-6:
读、写性能提升
可用空间:(N-2)
min(S1,S2,…)
有容错能力:2块磁盘 循环校验
最少磁盘数:4, 4+
RAID-10:
读、写性能提升
可用空间:N*min(S1,S2,…)/2
有容错能力:每组镜像最多只能坏一块;
最少磁盘数:4, 4+
RAID-01: 先做raid0,在做raid1,容错性没有raid10好。
RAID-50,先做raid5再做raid0,最小磁盘数和raid5划分有关。RAID7:商业公司自己开发的,性能不错价格昂贵
JBOD:Just a Bunch Of Disks
功能:将多块磁盘的空间合并一个大的连续空间使用,可以存放大型单个文件。可用空
间:sum(S1,S2,…)
常用级别:RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD
选择Raid级别:RAID 012345 到底哪一种适合你,不只是成本问题,容错功能和传输
性能的考虑以及未来之可扩充性都应该符合应用的需求

5、创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k;

]# ls /dev/sdc   ##查看新增磁盘
/dev/sdc
]# fdisk -l /dev/sdc   ##新建三个分区,大小分别为10G,注意格式要改成软raid格式fd。
]# partx /dev/sdc    ##可以查看出分区情况
# 1:        63- 20980889 ( 20980827 sectors,  10742 MB)
# 2:  20980890- 41961779 ( 20980890 sectors,  10742 MB)
# 3:  41961780- 62942669 ( 20980890 sectors,  10742 MB)
# 4:         0-       -1 (        0 sectors,      0 MB)
]# mdadm -C /dev/md0 -n 2 -l 1 -c 128 -x 1 -a yes /dev/sdc1 /dev/sdc2 /dev/sdc3  ##使用两块盘做raid1,一块空闲盘,chunk大小为128k,自动创建raid目标设备设备文件。
mdadm: /dev/sdc1 appears to be part of a raid array:
       level=raid1 devices=2 ctime=Fri Jan 27 15:41:41 2017
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
mdadm: /dev/sdc2 appears to be part of a raid array:
       level=raid1 devices=2 ctime=Fri Jan 27 15:41:41 2017
mdadm: /dev/sdc3 appears to be part of a raid array:
       level=raid1 devices=2 ctime=Fri Jan 27 15:41:41 2017
Continue creating array? yes
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
]# cat /proc/partitions 
major minor  #blocks  name

   8        0   20971520 sda
   8        1     512000 sda1
   8        2   10240000 sda2
   8        3    1048576 sda3
   8        4          1 sda4
   8        5    1048576 sda5
   8        6    8119296 sda6
   8       16   20971520 sdb
   8       17     208813 sdb1
   8       32   36700160 sdc
   8       33   10490413 sdc1
   8       34   10490445 sdc2
   8       35   10490445 sdc3
   9        0   10482176 md0
]# mdadm -D /dev/md0   ##可以查看出md设备的使用情况
/dev/md0:
        Version : 1.2
  Creation Time : Fri Jan 27 15:48:28 2017
     Raid Level : raid1
     Array Size : 10482176 (10.00 GiB 10.73 GB)
  Used Dev Size : 10482176 (10.00 GiB 10.73 GB)
   Raid Devices : 2
  Total Devices : 3
    Persistence : Superblock is persistent

    Update Time : Fri Jan 27 15:49:20 2017
          State : active 
 Active Devices : 2
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 1

           Name : localhost.localdomain:0  (local to host localhost.localdomain)
           UUID : 05a71baf:68ed7707:18ae7601:b29751e5
         Events : 18

    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       8       34        1      active sync   /dev/sdc2

       2       8       35        -      spare   /dev/sdc3

6、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;

]# fdisk /dev/sdc  ##对空闲盘进行分区
]# partx /dev/sdc  ##查看分区使用情况
# 1:        63-  8401994 (  8401932 sectors,   4301 MB)
# 2:   8401995- 16803989 (  8401995 sectors,   4301 MB)
# 3:  16803990- 25205984 (  8401995 sectors,   4301 MB)
# 4:         0-       -1 (        0 sectors,      0 MB)
]# mdadm -C /dev/md0 -n 3 -l 5 -c 256 -a yes /dev/sdc1 /dev/sdc2 /dev/sdc3  ##创建raid5阵列
]# mdadm -D /dev/md0          ##查看raid创建情况
/dev/md0:
        Version : 1.2
  Creation Time : Fri Jan 27 16:02:56 2017
     Raid Level : raid5
     Array Size : 8393728 (8.00 GiB 8.60 GB)
  Used Dev Size : 4196864 (4.00 GiB 4.30 GB)
   Raid Devices : 3
  Total Devices : 3
    Persistence : Superblock is persistent

    Update Time : Fri Jan 27 16:05:09 2017
          State : clean, degraded, recovering 
 Active Devices : 2
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 256K

 Rebuild Status : 99% complete                       ##显示raid创建进度

           Name : localhost.localdomain:0  (local to host localhost.localdomain)
           UUID : cb8d986d:1968c003:bd0579de:60ae32fc
         Events : 20

    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       8       34        1      active sync   /dev/sdc2
       3       8       35        2      spare rebuilding   /dev/sdc3
]# mke2fs -t ext4 /dev/md0    ##格式化分区
]# tune2fs -o acl /dev/md0     ##开启acl
]# vim /etc/fstab  ##编辑fstab文件
/dev/md0 /backup ext4 defaults,noatime 0 0  ##加入改行




7、写一个脚本
   (1) 接受一个以上文件路径作为参数;
   (2) 显示每个文件拥有的行数;

   (3) 总结说明本次共为几个文件统计了其行数;

#!/bin/bash
declare -i num
num=0
if [ $# -lt 1 ];then
        echo -en "请至少输入一个文件!\n"
        exit 1
else
        for i in $(seq 1 $#);do
                if [ ! -f $1 ];then
                        echo -en "$1 不是文件!\n"
                        shift
                        continue
                fi
                wc -l $1
                let num++
                shift
        done
fi

8、写一个脚本
   (1) 传递两个以上字符串当作用户名;
   (2) 创建这些用户;且密码同用户名;

   (3) 总结说明共创建了几个用户;

#!/bin/bash
declare -i sum
sum=0
if [ $# -lt 2 ];then
        echo -en "请至少输入两个以上字符串!\n"
        exit 1
fi
for i in $(seq 1 $#);do
        if [[ $1 =~ [[:alnum:]] ]];then
                id $1 &> /dev/null && echo -en "该用户${1}已经存在!\n" && shift && continue
                useradd $1 &> /dev/null && echo $1 |passwd --stdin $1 &> /dev/null && let sum++
                shift
        else
                echo -en "该用户名不符合规定!\n"
                shift
        fi
done
echo -en "总共创建了${sum}个用户。\n"

9、写一个脚本,新建20个用户,visitor1-visitor20;计算他们的ID之和;

#!/bin/bash
sum=0
userid=0
for ((i=1;i<=20;i++));do
        useradd visitor${i} &> /dev/null
        userid=$(id -u visitor$i)
        let sum+=$userid
done
echo -en "用户id之和为:${sum}。\n"

原创文章,作者:N25_Nva,如若转载,请注明出处:http://www.178linux.com/69503

(0)
N25_NvaN25_Nva
上一篇 2017-02-21
下一篇 2017-02-21

相关推荐

  • Linux开班典礼

    心得体会和近一周学习计划

    2018-03-26
  • Linux 系统终端

    Linux系统的主要终端主要包含:控制台终端、控制终端、串口终端、伪终端、虚拟终端。 控制台终端:在Linux 系统中,计算机显示器通常被称为控制台终端(Console)内核将信息送到控制台终端上(/dev/console), 通过与console相关联的虚拟终端将信息显示到屏幕上。再开机过程中屏幕输出的信息,这个屏幕就是Console; 控制终端:键盘,显…

    Linux干货 2016-10-19
  • Linux系统解压缩

    Linux系统解压缩 gzip/gunzip 语法gzip [OPTIONS] + 压缩之后的路径 + 要压缩的文件 -#:压缩比 (不常用) -d:解压缩,相当于gunzip -c:将压缩后的数据输出至标准输出 -r:递归至目录中对每个文件进行压缩 zcat :查看压缩文件的内容 ——————————————————————————————————————…

    Linux干货 2017-08-15
  • 关于shell脚本基础编程第五篇

                  shellb编程基础第五篇              本章内容:数组 变量:存储单个元素的内存空间数组:存储多个元素的连续的内存空间…

    系统运维 2016-08-24
  • CentOS7下编译安装Apache

    在Linux中通过编译源代码进行安装软件,需要GCC(GNU Compiler Collection,GNU编译器套件)的支持。通过yum安装GCC [root@localhost ~]# yum install gcc C程序源码编译安装三个步骤: 第一步:./configure  (1)通过选项传递参数,…

    Linux干货 2016-09-05
  • 分区块基本知识点及侧重点 — 上

        我们需要熟练了解磁盘分区原理。元数据及块设备对应inode是最重要也是最基本的原理。后面分区很多地方都和inode有关系。    一个磁盘片有63扇区,1024存储位,256个磁头,每个扇区只有前512字节是有效存储单元。所以后面磁盘清零都是跟512这个数字有关。    数据分数据区和元数据…

    Linux干货 2016-08-24

评论列表(1条)

  • 马哥教育
    马哥教育 2017-03-30 14:05

    再接再励。