马哥教育网络班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

相关推荐

  • 自制简易linux系统

    一、环境准备 1.笔记本电脑 2.vmware12软件 3.CentOS 6虚拟机 4.大于5G空间的物理磁盘分区 二、分区并挂载文件系统 1.添加磁盘 在vmware中选中CentOS 6系统并右击鼠标选择设置,添加–>硬盘–>SCSI(推荐)–>创建新虚拟磁盘–>大小改为5G–>完成 2.分区并…

    Linux干货 2016-09-20
  • 系统启动流程 grub

    grub CentOS 6启动流程: POST —> Boot Sequence(BIOS) —> Boot Loader —>Kernel(ramdisk) —> rootfs —> switchroot —> /sbin/init—>(/etc/inittab, /etc/init/*.conf) —> 设…

    Linux干货 2016-09-16
  • 马哥教育网络班22期+第三周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。  who | tr -s [[:space:]] | cut -d" " -f1 | sort -u [root@localhost cdrom]# who root     pts/1     &…

    Linux干货 2016-09-07
  • Linux 命令小结

    cat /proc/meminfo 校验内存使用 cat /proc/swaps 显示哪些swap被使用 cat /proc/version 显示内核的版本 cat /proc/net/dev 显示网络适配器及统计 cat /proc/mounts 显示已加载的文件系统 lspci -tv 罗列 PCI 设备…

    Linux干货 2017-06-18
  • 系统管理至grub故障排错及自建linux

    第二章    系统启动故障排除     1、grub配置文件写错,无法进入系统     步骤:(修复完成后记得修改配置文件为正确的文件)     方法一:进入启动菜单项后,修改菜单项为正确的内容,然后…

    Linux干货 2016-09-13
  • httpd功能配置之访问控制

       httpd服务可以实现对资源访问控制,可以根据IP地址和用户两种方式进行控制。    一、用户认证控制      1、在站点根目录下创建一个目录及一个页面文件      2、修改/var/httpd/conf/httpd.conf文件   &n…

    Linux干货 2016-03-11

评论列表(1条)

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

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