马哥教育网络班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)
上一篇 2016-08-05 16:16
下一篇 2016-08-05 16:16

相关推荐

  • Linux系统网络管理

    本机索引: 一、基本网络配置 二、主机、网卡名称管理 三、网卡别名 四、Bonding技术 五、实现网络组 六、Linux网络管理常用命令   一、基本网络配置: 将Linux主机接入网络,需要配置网络相关设置 一般包括以下内容: 主机名 IP/netmask 路由:默认网关 DNS服务器: 主DNS服务器 次DNS服务器   网络配置文…

    2018-05-03
  • 初学linux你该死记它们

    最笨的方法往往是最好的方法

    Linux笔记 2018-04-08
  • M25 Linux 学习,FHS标准

    FHS FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数Linux版本采用这种文件组织形式,FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。 FHS定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如/etc应该要放置设置文件,/bi…

    2017-07-15
  • 深入理解java嵌套类和内部类

    一、什么是嵌套类及内部类   可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型:静态嵌套类和非静态嵌套类。静态嵌套类使用很少,最重要的是非静态嵌套类,也即是被称作为内部类(inner)。嵌套类从JDK1.1开始引入。其中inner类又可分为三种:  其一、在一个类(外部类)中直接定义的内部类;  其二、在一个方法…

    Linux干货 2015-04-07
  • find、locate详细解析

    文件查找 在linux系统中如果我们不知道具体的文件的具体位置,我们可以使用文件查找命令来找到我们想找的文件,linux中也有相当优秀的查找命令,(如locate、find),通常查找速度快是locate,因为它是利用数据库查找的,所以速度很快,而find是全磁盘扫描进行查找,所以速度比较慢。 locate和find都是在文件系统上查找符合条件的文件含义。 …

    Linux干货 2016-08-13
  • linux练气篇

    1、描述计算机的组成及其功能。
    2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
    3、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
    4、说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
    5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
    6、请罗列Linux发行版的基础目录名称命名法则及功用规定

    Linux笔记 2018-05-12

评论列表(1条)

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

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