首页 > 代码库 > 第七周作业

第七周作业

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

[root@jonny ~]# fdisk /dev/sdb
命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+10G
分区 1 已设置为 Linux 类型,大小设为 10 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

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

    [root@jonny ~]# mke2fs -t ext4 -b 2048 -L "MYDATA" -m 2  /dev/sdb1
    mke2fs 1.42.9 (28-Dec-2013)
    文件系统标签=MYDATA
    OS type: Linux
    块大小=2048 (log=1)
    分块大小=2048 (log=1)
    Stride=0 blocks, Stripe width=0 blocks
    655360 inodes, 5242880 blocks
    104857 blocks (2.00%) reserved for the super user
    第一个数据块=0
    Maximum filesystem blocks=273678336
    320 block groups
    16384 blocks per group, 16384 fragments per group
    2048 inodes per group
    Superblock backups stored on blocks: 
    	16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 
    	2048000, 3981312
    
    Allocating group tables: 完成                            
    正在写入inode表: 完成                            
    Creating journal (32768 blocks): 完成
    Writing superblocks and filesystem accounting information: 完成

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

    [root@jonny ~]# mkdir -pv /data/mydata
    mkdir: 已创建目录 "/data"
    mkdir: 已创建目录 "/data/mydata"
    [root@jonny ~]# mount -t ext4 -o noatime,noexec,nodiratime,acl /dev/sdb1 /data/mydata


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

[root@jonny ~]# fdisk /dev/sdb
命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p  
分区号 (2-4,默认 2):
起始 扇区 (20973568-41943039,默认为 20973568):
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-41943039,默认为 41943039):+1G
分区 2 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助):t
分区号 (1,2,默认 2):2     
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”

[root@jonny ~]# mkswap /dev/sdb2
[root@jonny ~]# swapon /dev/sdb2


3、写一个脚本

   (1)、获取并列出当前系统上的所有磁盘设备;

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

  1 #!/bin/bash
  2 #
  3 fdisk -l | awk ‘/^\/dev\/*/{print $1}‘ > /tmp/df | df -h < /tmp/df
    [root@jonny bin]# sh 3.sh
    文件系统                 容量  已用  可用 已用% 挂载点
    /dev/mapper/centos-root   18G  4.4G   14G   25% /
    devtmpfs                 483M     0  483M    0% /dev
    tmpfs                    493M     0  493M    0% /dev/shm
    tmpfs                    493M  7.1M  486M    2% /run
    tmpfs                    493M     0  493M    0% /sys/fs/cgroup
    /dev/sda1                497M  168M  330M   34% /boot
    tmpfs                     99M     0   99M    0% /run/user/0
    /dev/sdb1                9.8G   13M  9.6G    1% /data/mydata


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

常用级别:RAID-0,RAID-1,RAID-5,RAID-10,RAID-50,JBOD


RAID-0:条带卷

数据分成块放在每个硬盘上,读写性能提升

非关键数据,交换空间等不重要的数据,不建议使用

可用空间:N*minS1,S2,S3...

无容错能力,最小磁盘:22+

 

RAID-1:镜像卷

数据完整放在2块硬盘

读性能提升,写性能略有下降

可用空间:1*minS1,S2,S3...

有冗余能力,最少磁盘:22+

 

RAID-4

01的结合

数据分块存储在多块硬盘,有一块做镜像盘

镜像盘会影响整体性能,出现单个盘故障可降级使用

有容错能力,有校验能力,最少磁盘:33+

 

RAID-5:

读写性能提升

可用空间:(N-1*minS1,S2,S3...

有容错能力:1

最少磁盘:33+

校验码形成左对称

 

RAID-6:

读写性能提升

可用空间:(N-2*minS1,S2,S3...

有容错能力:2

最少磁盘:44+

校验码形成左对称

 

混合类型:

 

RAID-10:

RAID1,再将每组RAID1做成RAID0

读写性能提升

可用空间:N*minS1S2.../2

有容错能力:每组镜像最多只能坏一块

最少磁盘:44+

 

RAID-01:

先做成RAID0,再用一些硬盘做成RAID1

 

RAID-50 RAID7

 

JBODJust a Bunch Of Disks

功能:将多块磁盘的空间合并一个大的连续空间使用:

可用空间:sumS1,S2...


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

[root@jonny ~]# mdadm -C /dev/md1 -n 2 -l 1 -x 1 -c 128 /dev/sdb1 /dev/sdb2 /dev/sdb3 
    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       18        1      active sync   /dev/sdb2

       2       8       19        -      spare   /dev/sdb3


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

[root@jonny ~]# mdadm -C /dev/md2 -n 3 -l 5 -c 256 /dev/sdc1 /dev/sdc2 /dev/sdc3
[root@jonny ~]# mke2fs -t ext4 /dev/md2
[root@jonny ~]# vim /etc/fstab
 /dev/md2        /backup         ext4    acl,noatime,defaults    0 0


7、写一个脚本

   (1) 接受一个以上文件路径作为参数;

   (2) 显示每个文件拥有的行数;

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

  1 #!/bin/bash
  2 #
  3 declare -i sum=0
  4 if [ $# -lt 1 ];then
  5  echo “请您至少给出一条文件路径”  && exit 1
  6 fi
  7 for i in $@;do
  8   if [ -f $i ];then
  9      echo "$i 的文件的行数是: `wc -l $i | cut -d" " -f1` "
 10      let sum++
 11   else
 12      echo "$i 不是正确的文件路径"
 13   fi
 14 done
 15 echo "本次统计的文件数为: $sum"
 
[root@jonny bin]# sh 7.sh /etc/passwd /etc/fstab
/etc/passwd 的文件的行数是: 45 
/etc/fstab 的文件的行数是: 11 
本次统计的文件数为: 2


8、写一个脚本

   (1) 传递两个以上字符串当作用户名;

   (2) 创建这些用户;且密码同用户名;

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


本文出自 “linux启航” 博客,请务必保留此出处http://jiayimeng.blog.51cto.com/10604001/1856553

第七周作业