linux第七周作业

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

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

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

1)为虚机新增一块硬盘,系统识别为sdb

2)通过fdsik /dev/sdb  进入fdsik 交互式界面

3)键入n 新增一块主分区,大小为10G

4)键入w 将分区表写入磁盘退出

5)mke2fs -t ext4 -b 2048 -m 2 -L MYDATA /dev/sdb1

6)mount -o noexec,noatime,acl /dev/sdb1  /data/mydata

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

1)同题1通过fdisk划分一个分区大小为1G

2)键入t  将分区类型设置为 linux swap

3)mkswap /dev/sdb6

3、写一个脚本

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

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

#!/bin/bash

#Discription: show disk information of the current filesystem and the space usage of every patation.

fdisk -l|grep "Disk /dev/[s|h]d"

df -h

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

raid0 条带式存储 显著提升磁盘读写性能,但是没有数据冗余,对灾备没有帮助。最小磁盘数2个,总磁盘大小为N*MIN(disk1,disk2....)

raid1 镜像式存储 提供了冗余度,极限情况下,可以允许损坏一半的磁盘。但是搭建成本高,最小磁盘数为2个,总磁盘大小为1/2*(disk1+disk2+.......). 读性能略有提升,写性能下降

raid4 最小的磁盘数为3个,其中一块盘用于存储校验码。优点是3块硬盘中,可以损坏任意一块磁盘。缺点:一块硬盘专门用作校验盘,读写压力大。总磁盘大小为n-1/min(disk1+disk2+......)

raid5  同raid4相比,每个磁盘轮流充当校验盘的角色,分摊读写压力。冗余度和总磁盘大小同raid4,读写性能提升。

raid6  同raid5相比,用两块磁盘充当校验盘,最小磁盘数为4块,总磁盘大小为n-2*min(disk1+disk2+......). 允许两块磁盘损坏.

raid10  先做raid1,再做raid0.  以总共8块磁盘的阵列为例。 两两一组先分成4组(A,B,C,D),每组各有2块磁盘互成映像。然后将每一组切割成条带,存储在各个磁盘中(A1,A2),(B1,B2),(C1,C2)。(D1,D2),只要每组的镜像不同时损坏,则对数据没有影响。

raid01  先做raid0,再做raid1。以总共8块磁盘的阵列为例,4块为一个组,组成raid0。共A,B两组,再用另4块磁盘与A,B两组做raid1,形成镜像卷。 两个镜像卷不可以同时各有有磁盘损坏,不然数据将被破坏。

raid50 先做raid5,再做raid0   磁盘利用率根据raid5的分组磁盘数决定。

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

1)为虚拟机添加两块磁盘,大小都为10G

2)fdisk -l 显示系统磁盘信息,得到新的磁盘为sdb,sdc

3)通过fdisk 交互式命令,将两块磁盘类型设置为fd.

4)mdadm -C /dev/md1 -a yes -n 2 -l raid1 -c 128 /dev/sdb /dev/sdc

5)cat /proc/mdstat 验证

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

1)前提工作同题5,为虚拟机添加5块硬盘,分别为4G大小,其中一块盘即为冗余。

2)mdadm -C /dev/md1 -l raid5 -n 5 -c 256 -a yes /dev/sd{b,c,d,e,f}

### 题目理解有偏差。。。每块磁盘设置成了4G,所以总大小为16G,因时间有限。。没能重做,但方法已学会,请老师谅解。

7、写一个脚本

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

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

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

#!/bin/bash
declare -i sum=0
if [ $# -ne 0 ];then                                   #判断参数是否为空
  for i in [email protected];do
    if [ -f "$i" ];then                                #判断参数是否为文件
       line=`wc -l $i|cut -d" " -f1`
       echo "The lines of the $i is $line."
       let sum++
    else
       echo "The $i is not exist!"
    fi
  done
  echo "The count of the file is $sum"
else
  echo -e "The args is null!\nUsage: testshell.sh arg1 arg2..."
  exit 1
fi

8、写一个脚本

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

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

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

#!/bin/bash
declare -i sum=0
if [ $# -lt 2 ];then                                   #判断参数是否小于2个
   echo "The args can not be less than two"
   exit 1
else
   for i in [email protected];do
        useradd $i && echo "$i"|passwd --stdin $i && let sum++
   done
echo "This Program create $sum user in all."
fi

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

#!/bin/bash
declare -i sum=0
for i in {1..20};do
   id visitor$i &>/dev/null || useradd visitor$i && let sum+=`grep "visitor$i" /etc/passwd|cut -d: -f3`
done
echo "The sum of the uid is $sum."

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

#!/bin/bash
declare -i line_sum=0
declare -i space_sum=0
for i in /etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/fstab;do
    ls=`grep "^#" $i|wc -l`
    ss=`grep "^$" $i|wc -l`
    echo "The line number of  $i with #begin is $ls."
    echo "The blank line number of  $i is $ss."
    echo "---------------------------------------------------------------"
done;

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

#!/bin/bash
declare -i sum=0
awk -F: ‘/bash$/{printf "%-20s%s",$1,$3;sum+=$3}END{print "The sum of uid is: "sum}‘ /etc/passwd

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

少个此类用户;

#!/bin/bash
declare -i sun=0
awk -F: ‘{if (($4 !="") && ($4 != $1)) {print $1;sum+=1;}}END{print "The sum is these users is:" sum} ‘ /etc/group

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

1) 为虚机添加两块硬盘,大小为各位20G

2)通过fdisk命令将 sdb划分为sdb1,sdb2,大小各位10G,sdc划分为sdc1,sdc2,大小各为10G,类型为8e

3)pvcreate /dev/sdb1

pvcreate /dev/sdc1

pvdisplay                                          #验证pv信息

4) vgcreate -s 8M vgtest /dev/sdb1 /dev/sdc1    #-s 指定PV大小

vgdisplay                                          #验证vg信息

5)lvcreate -L 5G -n mylv1 vgtest        #-n 指定逻辑卷名称 -L 指定逻辑卷大小

lvdisplay                                          #验证lv信息

6)  mke2fs -t ext4 /dev/dm-0

mount -a -o acl /dev/dm-0 /users/

df -h

7) blkid /dev/dm-0

echo "UUID=0c5981ff-5f80-41d9-968a-e7513b9624e5   /users      ext4     defaults   0   0" >>/etc/fstab

#获取逻辑卷的UUID,将挂载信息添加至/etc/fstab,实现开机自动挂载

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

mkdir /users/magedu &&useradd magedu /users/magedu

cp -r /etc/* /users/magedu

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

lvextend -L 9G /dev/mapper/vgtest-mylv1

e2fsck -f /dev/mapper/vgtest-mylv1

resize2f   /dev/mapper/vgtest-mylv1

cat /users/magedu/fstab

#扩展逻辑卷时,必须先扩展物理边界,再扩展逻辑边界!

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

umount /dev/mapper/vgtest-mylv1

e2fsck -f /dev/mapper/vgtest-mylv1

resize2fs /dev/mapper/vgtest-mylv1

lvreduce -L 7G /dev/mapper/vgtest-mylv1

mount -a -o acl /dev/mapper/vgtest-mylv1  /users

cat /users/magedu/fstab                        #验证文件是否正常

#逻辑卷缩减容量与扩容相反,必须先缩减逻辑边界,再缩减物理边界!

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

lvcreate -s -L 1G -n my_snapshoot /dev/mapper/vgtest-mylv1

#为逻辑卷vgtest-mylv1创建大小为1G的快照卷

lvconvert --merge /dev/mapper/my_snapshoot

#合并快照卷和原始卷

时间: 2024-08-28 17:45:47

linux第七周作业的相关文章

马哥linux第七周作业

1.创建一个10G分区,并格式为ext4文件系统: (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl: (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳: [[email protected] tmp]# fdisk /dev/sda          WARNING: DOS-compatible mode is deprecated. It's strongly recommended

2017-2018-2 1723《程序设计与数据结构》第七周作业 总结

作业地址 第七周作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homework/1806 (本周博客直接在作业界面打了分,可供随时查看) 提交情况如图:(严域俊这次忘交,请下次注意) 作业要求 教材第9章 (1)阅读9.1-9.5章节 (2)代码托管到[email protected],参考一下使用开源中国托管代码 (3)完成课后自测题,并参考答案学习 (4)完成课后练习题 (5)完成程序设计项目:至少完成PP9.1.PP9.3. (6

马哥linux 培训第二周作业

注意:第二周作业,请将以下题目整理在51cto博客当中,完成后请将对应的博文链接地址提交在答案栏中,提交格式如下:学号+姓名+博文链接地址eg:1+张三+http://mageedu.blog.51cto.com/4265610/1794420 本周作业内容:1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. 文件管理的命令有cp.mv.rm 复制命令:cp 用法: cp [-adfilprsu] 来源文件(source) 目标文件(destination) cp [o

Linux 第七周实验 及总结

姬梦馨 原创作品 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 第七周 Linux内核如何装载和启动一个可执行程序 一:1.可执行程序如何产生的? linux系统中,可执行程序一般要经过预处理.编译.汇编.链接.执行等步骤. 编译过程 预处理:gcc –E hello.c –o hello.i; gcc –E调用cpp 生成中间文件 编 译:gcc –S hello.i –o hello.s; gcc –S调

linux 第七周 总结及实验

姬梦馨 原创作品 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 第七周 Linux内核如何装载和启动一个可执行程序 一:1.可执行程序如何产生的? linux系统中,可执行程序一般要经过预处理.编译.汇编.链接.执行等步骤. 编译过程 预处理:gcc –E hello.c –o hello.i; gcc –E调用cpp 生成中间文件 编 译:gcc –S hello.i –o hello.s; gcc –S调

C语言--第七周作业评分(5班)

作业链接:https://edu.cnblogs.com/campus/hljkj/CS2017-5/homework/1304 一.评分要求 要求1 完成PTA第七周所有题,总共两次题,每次12.5分.若存在抄袭现象,倒扣此题所有分数(25分). 要求2 2道题,每道题对应10分(总计20分). (1)实验代码(1分). (2)设计思路:算法描述(1分),流程图(2分). (3)调试过程中遇到的问题及解决办法(3分). (4)本题PTA提交列表(3分). 要求3 按照要求2将其他题目的代码.解

软件过程与项目管理第七周作业

软件过程与项目管理第7周作业 驱动和责任 请阅读驱动和责任这篇文章,讨论团队如何能让所有人都明确驱动和责任. 文章链接:http://www.cnblogs.com/xinz/p/4298446.html 有极端的看法说,任何与报酬挂钩的绩效评估都是有害的,你怎么看? 文章链接:http://www.joelonsoftware.com/articles/fog0000000070.html 答:1. 团队是有着一个共同目标的一群人,团队成员有各自的分工,互相依赖合作,共同完成任务.如何一步一步

20169217 《Linux内核原理与分析》第七周作业

首先完善一下上周的作业,上周的嵌入式汇编并没有编译成功,究其原因,还是我对传参理解不到位,write函数的3个参数都要传递才行,并不是只传谣打印的字符串就行. 在老师的指导下并且参考了毛卫华同学的代码之后,终于编译成功啦! #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> int main() { char* msg = "liuhongyi

马哥Linux第七周课程作业

1.创建一个10G分区,并格式为ext4文件系统: (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl: # 创建10G分区 [[email protected] ~]# fdisk /dev/sdb 命令(输入 m 获取帮助):n   Partition type:    p   primary (0 primary, 0 extended, 4 free)    e   extended Select (default p): p 分