马哥教育网络班20期-第七周课程作业

Table of Contents

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

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

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

# 利用fdisk创建一个10G分区,分区id为83,假设为/dev/sda2
mke2fs -t ext4 -b 2048 -m 2 -L 'MYDATA' /dev/sda2

mount -o default,acl,noexec,noatime /dev/sda2 /data/mysata

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

# 利用fdisk创建一个1G分区,分区id为83,假设为/dev/sda2
mkswap /dev/sda2
swapon /dev/sda2

3、写一个脚本

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

    fdisk -l | grep -o '^/[^[:space:]]\+'
  2. 显示每个磁盘设备上每个分区相关的空间使用信息;

    df -h

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

  • RAID-0

    • 将数据分成若干chunk,分散到每个硬盘中

    • 读、写性能提升

    • 可用空间: N*min(S1,S2,…)

    • 无容错能力

  • RAID-1

    • 将数据分成若干chunk,复制到每个硬盘中

    • 读性能提升、写性能略下降

    • 1*min(S1,S2,…)

    • 有冗余能力

  • RAID-4

    • 3个硬盘中1个硬盘存储校验码

    • 有容错能力: 1块磁盘

  • RAID-5

    • 在RAID-4的基础上,轮流用硬盘存储校验码

    • 读、写性能提升

    • 可用空间: (N-1)*min(S1,S2,…)

    • 有容错能力: 1块磁盘

    • 最少使用3块磁盘

  • RAID-6

    • 轮流用两块硬盘做校验盘

    • 读、写性能提升

    • 可用空间: (N-2)*min(S1,S2,…)

    • 有容错能力: 2块磁盘

    • 最少使用4块磁盘

  • RAID-10

    • 先两两一组进行RAID-1,后用RAID-0

    • 读、写性能提升

    • 可用空间: N*min(S1,S2,…)/2

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

    • 最少磁盘数: 4, 4+

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

# 利用fdisk创建三个10G分区,分区id为fd,假设为/dev/sda3、/dev/sda4、/dev/sda5
mdadm -C /dev/md1 -n 3 -l 1 -x 1 -a yes -c 128 /dev/sda{3,4,5}

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

  1. 创建一个RAID5设备,并格式化为ext4文件系统

    # 利用fdisk创建三个4G分区,分区id为fd,假设为/dev/sda3、/dev/sda4、/dev/sda5
    mdadm -C /dev/md1 -n 3 -l 5 -a yes -c 256 /dev/sda{3,4,5}
    mke2fs -t ext4 /dev/md1
  2. 编辑fstab文件

    # 在/etc/fstab文件中加入以下一行
    /dev/md1 /backup ext4 defaults,noatime,acl 0 0
  3. 挂载设备

    mount -a

7、写一个脚本

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

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

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

#!/bin/bash
#
ARG_WRONG=87

if [ $# -lt 1 ]; then
    echo "$0 PATH [PATH...]"
    exit $ARG_WRONG
fi

for i in `seq $#`; do
    echo -n "$i: "
    if [ -e ${$i} ]; then
        echo `wc -l ${$i}`
        let "NUM++"
    else
        echo "File not exist"
    fi
done

echo "Number of file: $NUM"

8、写一个脚本

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

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

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

#!/bin/bash
#
ARG_WRONG=87

if [ $# -lt 2 ]; then
    echo "$0 User_name User_name [User_name...]"
    exit $ARG_WRONG
fi

for i in `seq $#`; do
    useradd ${$i}
    echo ${$i} | passwd --stdin ${$i}
    let "NUM++"
done

echo "Number of user: $NUM"

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

#!/bin/bash
#
for i in `seq 20`; do
    useradd "visitor$i"
    let "SUM+=`id -u visitor$i`"
done
echo "Sum of ID: $SUM"

10、写一脚本,分别统计/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#号开头的行数之和,以及总的空白行数;

#!/bin/bash
#

for path in /etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/fstab; do
    let "NUM1+=`grep -c '^#' $path`"
    let "NUM2+=`grep -c '^[[:space:]]*$' $path`"
done

echo "Number of #: $NUM1"
echo "Number of empty: $NUM2"

11、写一个脚本,显示当前系统上所有默认shell为bash的用户的用户名、UID以及此类所有用户的UID之和;

#!/bin/bash
#
grep "\<bash\>$" /etc/passwd | cut -d':' -f1,3

for i in `grep "\<bash\>$" /etc/passwd | cut -d':' -f3`; do
    let "NUM+=i"
done

echo "Sum of UID: $NUM"

12、写一个脚本,显示当前系统上所有,拥有附加组的用户的用户名;并说明共有多少个此类用户;

#!/bin/bash
#
for i in `grep '[^:]$' /etc/group | cut -d':' -f1`; do
    echo $i
    let "NUM++"
done

echo "Number of user: $NUM"

13、创建一个由至少两个物理卷组成的大小为20G的卷组;要求,PE大小为8M;而在卷组中创建一个大小为5G的逻辑卷mylv1,格式化为ext4文件系统,开机自动挂载至/users目录,支持acl;

# 使用fdisk两个10G的分区,分区id为8e,假设为/dev/sda3、/dev/sda4
pvcreate /dev/sda3
pvcreate /dev/sda4

vgcreate -s 8M mylv /dev/sda3 /dev/sda4

lvcreate -L 5G -n mylv1 mylv
mke2fs -t ext4 /dev/mylv/mylv1

# 在/etc/fstab文件中加入以下一行
/dev/mylv/mylv1 /users ext4 defaults,acl 0 0

14、新建用户magedu;其家目录为/users/magedu,而后su切换至此用户,复制多个文件至家目录;

useradd -d /users/magedu magedu
su - magedu
cp FILE ~/

15、扩展mylv1至9G,确保扩展完成后原有数据完全可用;

umount /dev/mylv/mylv1
lvextend -L 9G /dev/mylv/mylv1
resize2fs /dev/mylv/mylv1

16、缩减mylv1至7G,确保缩减完成后原有数据完全可用;

umount /dev/mylv/mylv1
e2fsck -f /dev/mylv/mylv1
resize2fs /dev/mylv/mylv1
lvreduce -L 7G /dev/mylv/mylv1

17、对mylv1创建快照,并通过备份数据;要求保留原有的属主属组等信息;

lvcreate -L 5G -p r -s -n mylv1_snapshot /dev/mylv/mylv1

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

(0)
Net20_木皮Net20_木皮
上一篇 2016-08-05
下一篇 2016-08-05

相关推荐

  • 马哥教育网络班20期 第8周课程练习

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥:工作于数据链路层,实现多个lan之间数据的转发,隔离冲突域,类似二层交换机。 集线器:工作于物理层,实现设备的接入,数据信号放大、中转,共享信道。把一个端口接收的所有信号向所有端口分发出去 二层交换机:工作于数据链路层,可连接多个lan,根据帧的mac来转发数据,隔离冲突域…

    Linux干货 2016-08-15
  • 网络管理(二)之IP地址划分子网、多块网卡共用单一IP

    网络管理(二)IP地址   一、认识学习IP地址的组成: 1、它们可唯一标识IP 网络中的每台设备 2、IP地址由两部分组成: 网络ID:标识网络;每个网段分配一个网络ID 主机ID:标识单个主机;由组织分配给各设备 3、点分十进制计法表示IPv4地址: 4、如下图,将系统中的IP地址用二进制表示,再通过转换合成的十进制数,使用ping命令可得出:…

    Linux干货 2016-09-05
  • linux 学习5

    1. RPM包管理 1.1 RPM简介 RPM类似于Windows系统中.exe的软件安装程序,用户可以使用它自行安装和管理Linux上的应用程序和系统工具; RPM软件包文件都是以.rpm为后缀,一般采用这样的命名格式:软件包名称 – 版本号 – 修正版 . 硬件平台 . rpm。 1.2 RPM命令的使用方法 查询:rpm {-q | –query} […

    2018-07-21
  • 计算机组成及各部分功能

    计算机组成及各部分功能 计算机组成 区别于利用机械原理对数据进行处理的机械计算机,计算机现在一般都指电子计算机,即电脑。计算机是一种利用电子学原理,根据一些列指令对数据进行处理的工具。 不管是机械计算机还是电子计算机其主要目的还是代替人来完成一系列的数据计算。1941年夏天诞生的阿塔纳索夫-贝瑞计算机是世界上第一部电子计算机,使用了真空管计算器,二进制数值,…

    Linux干货 2016-10-27
  • N27_第十三周作业

    1、建立samba共享,共享目录为/data,要求:描述完整的过程 1)共享名为shared,工作组为magedu 2)添加组develop,添加用户gentoo,centos和Ubuntu,其中gentoo和centos以develop为附加组,Ubuntu不属于develop组,密码均为用户名 3)添加samba用户gentoo,centos和Ubunt…

    2017-11-20
  • Linux获取命令帮助方法全揽

    Linux获取命令帮助方法全揽 Linux命令分类 内置命令:shell程序自带的命令 外部命令:独立的可执行程序,在linux系统中存在与命令名称相同的可执行文件,需要shell程序通过环境变量解析到对应的可执行性文件后才可执行 可使用type COMMAND查看命令的分类 获取帮助的方法 内置命令获取帮助 命令格式:help COMMAND 外部命令获取…

    Linux干货 2017-07-02

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-05 17:06

    写的很好,排版也很棒,加油