N25-第七周

1、创建一个10G分区,并格式为ext4文件系统;

(1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;

    [root@localhost ~]# fdisk -l

        Disk /dev/sda: 42.9 GB, 42949672960 bytes
        255 heads, 63 sectors/track, 5221 cylinders
        Units = cylinders of 16065 * 512 = 8225280 bytes
        Sector size (logical/physical): 512 bytes / 512 bytes
        I/O size (minimum/optimal): 512 bytes / 512 bytes
        Disk identifier: 0x000424e9

           Device Boot      Start         End      Blocks   Id  System
        /dev/sda1   *           1          26      204800   83  Linux
        Partition 1 does not end on cylinder boundary.
        /dev/sda2              26        4961    39640064   83  Linux
        /dev/sda3            4961        5222     2097152   82  Linux swap / Solaris

        Disk /dev/sdb (Sun disk label): 255 heads, 63 sectors, 2610 cylinders
        Units = cylinders of 16065 * 512 bytes

           Device Flag    Start       End    Blocks   Id  System
        [root@localhost ~]# fdisk /dev/sdb

        Command (m for help): n
        Partition number (1-8): 1
        First cylinder (0-2610): 0
        Last cylinder or +size or +sizeM or +sizeK (0-2610, default 2610): +10000M     

        Command (m for help): w
        The partition table has been altered!

        Calling ioctl() to re-read partition table.
        Syncing disks.
        [root@localhost ~]# mke2fs -t ext4 -b 2048 -m 2 -L MYDATA /dev/sda5

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

    [root@localhost ~]# mkdir -p /data/mydata
        [root@localhost ~]# mount -o  noexec,noatime /dev/sdb1 /data/mydata

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

[root@test /]# cat /proc/partitions
major minor  #blocks  name

   8        0   41943040 sda
   8        1     512000 sda1
   8        2   41430016 sda2
   8       16   20971520 sdb
   8       17    1060258 sdb1
 253        0   37330944 dm-0
 253        1    4096000 dm-1
[root@test /]# swapon /dev/sdb1
[root@test /]# swapon -s
Filename                Type        Size    Used    Priority
/dev/dm-1                               partition    4095996    0    -1
/dev/sdb1                               partition    1060252    0    -2

3、写一个脚本
(1)、获取并列出当前系统上的所有磁盘设备;
(2)、显示每个磁盘设备上每个分区相关的空间使用信息;

#!/bin/bash
#显示当前系统信息

 echo 磁盘设备:
 fdisk -l | grep “^Disk /dev/sd[a-z]” | awk -F [:” “] ‘{print $2}’

echo 磁盘分区使用状况:
df

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

    RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,
   同时希望磁盘失效时不会使对数据的访问受损 失而开发出一定水平的数据保护技术。RAID就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个
   独立的大型存储设备出现。RAID可以充分发 挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在任何
   一块硬盘出现问题的情况下都可以继续工作,不会受到损坏硬盘的影响.    

    RAID-0:swap temp适用.
        读写提升
        可用:N*min(s1,s2)

    RAID-1:
        读性能提升,写性能略有下降;
        可用空间:1*min(s1,s2…)


    RAID-5:
        读写性能提升
        可用空间 (n-1)*min(s1,s2…)
        有容错能力 1块磁盘
        最少磁盘数 3 ,3+

    RAID-6:
        读写性能提升
        可用空间 (n-2)*min(s1,s2…)
        有容错能力 2块磁盘
        最少磁盘数 4 ,4+

    混合类型:            
    raid10
        先做镜像(1),再做条带(0)
        读写性能提升
        可用空间 (n)*min(s1,s2…)/2
        有容错能力 每组镜像最多一个
        最少磁盘数 4 ,4+
    raid01
        先做条带(0),再做镜像(1)
        读写性能提升
        可用空间 (n)*min(s1,s2…)/2
        有容错能力 每组镜像最多一个
        最少磁盘数 4 ,4+
    RAID01和RAID10非常相似,二者在读写性能上没有什么差别。但是在安全性上RAID10要好于RAID01.

    RAID 50
        RAID50是RAID5与RAID0的结合。此配置在RAID5的子磁盘组的每个磁盘上进行包括奇偶信息在内的数据的剥离。
        每个RAID5子磁盘组要求三个硬盘。RAID50具备更高的容错能力,因为它允许某个组内有一个磁盘出现故障,而不会造成数据丢失。
        而且因为奇偶位分部于RAID5子磁盘组上,故重建速度有很大提高。优势:更高的容错能力,具备更快数据读取速率的潜力。
        需要注意的是:磁盘故障会影响吞吐量。故障后重建信息的时间比镜像配置情况下要长。

    JBOD:Just a bunch of disks
        功能:将多块磁盘的空间合成一个大的连续空间使用
        可用空间 sum(s1,s2…)

    常用级别 raid0 raid1 raid5 raid10 raid50 Jbod

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

   [root@test ~]# fdisk /dev/sdb
    [root@test ~]# fdisk /dev/sdc
    [root@test ~]# fdisk /dev/sdd
    创建10G分区,分别为sdb1,sdc1,sdd1更改分区类型为Linux raid autodetect
    [root@test ~]# mdadm -C /dev/md0 -n 2 -x 1 -l 1 -a yes -c 128K /dev/sd{b,c,d}1
    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
    Continue creating array?  y
    mdadm: Defaulting to version 1.2 metadata
    mdadm: array /dev/md0 started.
    [root@test ~]# cat /proc/mdstat
    Personalities : [raid1]
    md0 : active raid1 sdd1[2](S) sdc1[1] sdb1[0]
          10474176 blocks super 1.2 [2/2] [UU]

    unused devices: <none>

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

   [root@test ~]# fdisk /dev/sdb
    [root@test ~]# fdisk /dev/sdc
    [root@test ~]# fdisk /dev/sdd
    创建2G分区,分别为sdb1,sdc1,sdd1更改分区类型为Linux raid autodetect
    [root@test ~]# fdisk -l |grep sd
    Disk /dev/sda: 42.9 GB, 42949672960 bytes
    /dev/sda1   *           1          64      512000   83  Linux
    /dev/sda2              64        5222    41430016   8e  Linux LVM
    Disk /dev/sdb: 10.7 GB, 10737418240 bytes
    /dev/sdb1               1         262     2104483+  fd  Linux raid autodetect
    Disk /dev/sdc: 10.7 GB, 10737418240 bytes
    /dev/sdc1               1         262     2104483+  fd  Linux raid autodetect
    Disk /dev/sdd: 10.7 GB, 10737418240 bytes
    /dev/sdd1               1         262     2104483+  fd  Linux raid autodetect
    [root@test ~]# mdadm -C /dev/md1 -a yes -l 5 -c 256 -n 3 /dev/sd{b,c,d}1
    mdadm: /dev/sdb1 appears to be part of a raid array:
           level=raid1 devices=2 ctime=Thu Mar  9 08:58:23 2017
    mdadm: /dev/sdc1 appears to be part of a raid array:
           level=raid1 devices=2 ctime=Thu Mar  9 08:58:23 2017
    mdadm: /dev/sdd1 appears to be part of a raid array:
           level=raid1 devices=2 ctime=Thu Mar  9 08:58:23 2017
    Continue creating array? y
    mdadm: Defaulting to version 1.2 metadata
    mdadm: array /dev/md1 started.
    [root@test ~]# cat /proc/mdstat
    Personalities : [raid1] [raid6] [raid5] [raid4]
    md1 : active raid5 sdd1[3] sdc1[1] sdb1[0]
          4204544 blocks super 1.2 level 5, 256k chunk, algorithm 2 [3/3] [UUU]

    unused devices: <none>
    [root@test /]# mke2fs -t ext /dev/md1
    [root@test /]# vim /etc/fstab
    添加
    /dev/md1                /backup                  ext4 defaults,acl,noatime 0 0
    [root@test /]# mount -a
    [root@test /]# cd /backup
    [root@test backup]# ls
    lost+found

7、写一个脚本
(1) 接受一个以上文件路径作为参数;
(2) 显示每个文件拥有的行数;
(3) 总结说明本次共为几个文件统计了其行数;

   #!/bin/bash

    echo “File:$@”
        for file in $@;do
        lines=$(wc -l $file | cut -d’ ‘ -f1)
        echo “$file has $lines line(s).”
    done
    echo “Total files:$#”

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

#!/bin/bash

    for user in $@;do
        if id $user &> /dev/null;then
        echo “$user exists”
        else
        useradd $user
        if [ $? -eq 0 ];then
        echo $user | passwd –stdin $user &> /dev/null
            echo “Add $user finished”
              fi
             fi
     done

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

#!/bin/bash
    declare -i sum=0

    for i in {1..20};do

        if ! id visitor$i &> /dev/null;then
            useradd visitor$i
        fi
        ID=$(id -u visitor$i)
        sum=$[$sum+$ID]
            done
    echo $sum

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

(0)
lyj821202lyj821202
上一篇 2017-05-20
下一篇 2017-05-21

相关推荐

评论列表(1条)

  • 马哥教育
    马哥教育 2017-06-20 11:27

    如果脚本在多加一些判断条件的话会更好