马哥教育网络班22期+第7周课程练习

week7:
1、创建一个10G分区,并格式为ext4文件系统;
   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;
   (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;

	[root@centos6 ~]# fdisk /dev/sdb
	n
	p
	1
	enter
	+10G
	w
	[root@centos6 ~]# partx -a /dev/sdb
	[root@centos6 ~]# mke2fs -t ext4 -b 2048 -m 2 -L "MYDATA" /dev/sdb1
	[root@centos6 ~]# mkdir -pv /data/mydata
	[root@centos6 ~]# mount -t ext4 -o noexec,noatime,acl /dev/sdb1 /data/mydata   

2、创建一个大小为1G的swap分区,并创建好文件系统,并启用之;
	[root@centos6 ~]# dd if=/dev/zero of=/mnt/swap1 bs=1G count=1
	[root@centos6 ~]# mkswap /mnt/swap1
	[root@centos6 ~]# swapon /mnt/swap1

3、写一个脚本
   (1)、获取并列出当前系统上的所有磁盘设备;
   (2)、显示每个磁盘设备上每个分区相关的空间使用信息;
       #!/bin/bash
       #
       DISK=`fdisk -l|grep -E "Disk /dev/sd?"|awk -F'[ :]' '{print $2}'`
       for disk in $DISK;do
       		echo $disk
       		fdisk -l $disk
       done

4、总结RAID的各个级别及其组合方式和性能的不同;
	raid0:条带化;通常使用至少2块磁盘;无冗余及容错能力;能够提升磁盘读写能力;磁盘实际可用存储不变;
	raid1:镜像;使用偶数个磁盘;有冗余及容错能力;提升读性能;写性能下降;总容量丢失一半可用空间;
	raid5:单磁盘分布式奇偶校验;使用至少3块磁盘;有容错能力,允许损坏1快盘;提升读性能;不适用硬件raid控制器,写的性能会降低;丢失一块磁盘的容量;
	raid6:双磁盘分布式奇偶校验;使用至少4块磁盘;有容错能力,允许损坏2块盘;提升读性能;不使用硬件raid控制器,写的性能会很差;丢失2块磁盘的容量;
	raid10:镜像+条带;使用偶数个磁盘,至少4块;有容错及冗余,允许坏一组;总容量丢失一半;良好的读写性能;
	raid01:条带+镜像;与raid10区别只是做镜像和条带的顺序不同而已;


5、创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k;
	[root@centos6 ~]# mdadm -C /dev/md0 -a yes -l 1 -c 128 -n 2 -x 1 /dev/sdb{1,2,3}

6、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;
	[root@centos6 ~]# mdadm -C /dev/md0 -a yes -l 5 -c 256 -n 3 /dev/sdb{1,2,3}
	[root@centos6 ~]# mke2fs -t ext4 /dev/md0
	[root@centos6 ~]# echo "mount -t ext4 -o noatime,acl /dev/md0 /backup" >> /etc/rc.d/rc.local
	[root@centos6 ~]# chmod +x /etc/rc.d/rc.local

7、写一个脚本
   (1) 接受一个以上文件路径作为参数;
   (2) 显示每个文件拥有的行数;
   (3) 总结说明本次共为几个文件统计了其行数;
	#!/bin/bash

	if [ $# -eq 0 ];then
	    echo "$0 file1 file2 ..."
	    exit 1
	fi

	for i in $@;do
	    if [ ! -f $i ];then
	        echo "parameters error! "
	        exit 2
	    else
	        wc -l $i
	    fi
	done

	echo "Total number of file: $#"


8、写一个脚本
   (1) 传递两个以上字符串当作用户名;
   (2) 创建这些用户;且密码同用户名;
   (3) 总结说明共创建了几个用户;
	#!/bin/bash
	#
	if [ $# -lt 2 ];then
	    echo "At least two paramters!"
	    exit 1
	fi

	for i in $@;do
	    useradd $i && echo $i|passwd --stdin $i
	done

	echo "Total created users's number: $#"

9、写一个脚本,新建20个用户,visitor1-visitor20;计算他们的ID之和;
	#!/bin/bash
	#
	SUM=0
	for i in `seq 20`;do
	    useradd visitor$i &> /dev/null
	    let SUM+=`id -u visitor$i`
	done
	echo "Total sum of vistorX's id: $SUM"

10、写一脚本,分别统计/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#号开头的行数之和,以及总的空白行数;
	#!/bin/bash
	#
	sum1=0
	sum2=0
	for file in /etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/fstab;do
	    let sum1+=`grep ^# $file|wc -l`
	    let sum2+=`grep ^$ $file|wc -l`
	done

	echo "Total number of '^#' lines: $sum1"
	echo "Total number of blank lines: $sum2"
	

11、写一个脚本,显示当前系统上所有默认shell为bash的用户的用户名、UID以及此类所有用户的UID之和;
	# awk -F":" -v SHELL="/bin/bash" -v SUM=0 '{if($NF==SHELL)print $1,$3;SUM+=$3}END{print "Total SUM: " SUM}'
	 /etc/passwd

12、写一个脚本,显示当前系统上所有,拥有附加组的用户的用户名;并说明共有多少个此类用户;
	#!/bin/bash
	#
	USERS=$(awk -F':' '{print $1}' /etc/passwd)
	NUM=0

	for user in $USERS;do
	    if [ `id -G $user|wc -w` -gt 1 ];then
	        echo $user
	        let NUM++
	    fi
	done

	echo "Total number of Users Meeting Conditions: $NUM"

13、创建一个由至少两个物理卷组成的大小为20G的卷组;要求,PE大小为8M;而在卷组中创建一个大小为5G的逻辑卷mylv1,格式化为ext4文件系统,开机自动挂载至/users目录,支持acl;
	[root@centos6 ~]# pvcreate /dev/sdb1 /dev/sdb2
	[root@centos6 ~]# vgcreate -s 8M vg01 /dev/sdb1 /dev/sdb2
	[root@centos6 ~]# lvcreate -L 5G -n mylv1 /dev/vg01
	[root@centos6 ~]# mkfs.ext4 /dev/vg01/mylv1
	[root@centos6 ~]# echo "/dev/vg01/mylv1 /users ext4 defaults,acl,nodirtime 0 0" >> /etc/fstab

14、新建用户magedu;其家目录为/users/magedu,而后su切换至此用户,复制多个文件至家目录;
	[root@centos6 ~]# useradd -d /users/magedu magedu
	[root@centos6 ~]# su - magedu
	[magedu@centos6 ~]$ cp /tmp/rc.sysinit ./
	[magedu@centos6 ~]$ cp /var/log/wtmp ./

15、扩展mylv1至9G,确保扩展完成后原有数据完全可用;
	[root@centos6 ~]# lvextend -L 9G /dev/vg01/mylv1
	[root@centos6 ~]# resize2fs /dev/vg01/mylv1 

16、缩减mylv1至7G,确保缩减完成后原有数据完全可用;
	[root@centos6 ~]# umount /users
	[root@centos6 ~]# e2fsck -f /dev/vg01/mylv1
	[root@centos6 ~]# resize2fs /dev/vg01/mylv1 7G
	[root@centos6 ~]# lvreduce -L 7G /dev/vg01/mylv1

17、对mylv1创建快照,并通过备份数据;要求保留原有的属主属组等信息;
	[root@centos6 ~]# lvcreate -L 2g -p r -s -n mylv_s1 /dev/vg01/mylv1 
  		Logical volume "mylv_s1" created.

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

(0)
devondevon
上一篇 2016-09-26
下一篇 2016-09-26

相关推荐

  • Linux的哲学理念

    1、由目的单一的小程序组成,通过使用者的组合形成一个能够完成复杂任务的应用程序 2、一切皆为文件 3、尽量避免捕获用户接口;也就是说Linux运行的程序大多数是不需要过多的反复输入/输出人机交互信息,运行程序命令,直接获得反馈的结果,是一种目的单一的程序 4、配置文件保存为纯文本格式

    Linux干货 2016-10-29
  • 软件包管理工具—yum命令总结

    描述: YUM: Yellowdog Update Modifier, rpm的前端程序,用来解决软件包相关依赖性,可以在多个库之间定位软件包,实现查询、安装、升级、删除等功能 说明: yum repository: yum repo,存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下) 文件服务器: ftp:// http://…

    Linux干货 2016-08-29
  • 文本处理工具应用示例

    文本处理工具应用示例 1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可 who|awk ‘{print $1}’|sort|uniq -d 2.取出最后登录到当前系统的用户的相关信息 who|tail -1|cut -d’ ‘ -f1|id 3.取出当前系统上被用户当作默认shell的最多的那个shell cat /e…

    Linux干货 2017-07-16
  • 正则表达式基础

    一、正则表达式: 元字符是用来阐释字符表达式意义的字符,简言之,就是用来描述字符的字符。 正则表达式RE(Regular Expression)是由一串字符和元字符构成的字符串。 正则表达式的主要功能是文本查询和字符串操作,它可以匹配文本的一个字符或字符集合。实际上正则表达式完成了数据的过滤,将不满足正则表达式定义的数据拒绝掉,剩下与正则表达式匹配的数据。 …

    Linux干货 2017-06-04
  • The second week’s homework

    一.linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 Linux 文件与目录管理 我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /。 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。 首先需要知道什么是绝对路径与相对路径。 绝对路径: 路径的写法,由根目录 / 写起,例如: /usr/shar…

    Linux干货 2016-12-12
  • 逻辑卷的命令解析

    前言    lvm是logical volume manager(逻辑卷管理器)的简称,通过将若干个磁盘分区连接成一个整块的卷组(volumegroup),形成一个存储池,管理员可以在卷组上随意创建逻辑卷(logicalvolumes),并进一步在逻辑卷组上创建文件系 统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按…

    Linux干货 2016-08-30

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-27 09:57

    写的很好,有的脚本可以用多种方法实现试试