马哥教育网络班21期第七周作业

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

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

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

[root@localhost ~]# mke2fs -t ext4 -b 2048 -m 2 -L 'MYDATA' /dev/sdd
[root@localhost ~]# tune2fs -o acl /dev/sdd[root@localhost ~]# mkdir -pv /data/mydata
[root@localhost ~]# mount -o acl,noexec,noatime /dev/sdd /data/mydata/


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

#fdisk /dev/sdb  (n;p;2;+1G;t;2;82;w)
#partx -a /dev/sdb#mkswap /dev/sdb2
#swapon /dev/sdb2
# free -m

3、 写一个脚本   (1)、获取并列出当前系统上的所有磁盘设备;   (2)、显示每个磁盘设备上每个分区相关的空间使用信息;

#!/bin/bash
#
fdisk -l | grep ^"Disk /dev/[sh]d[a-z]" | cut -d"/" -f 3 | cut -d: -f1
    for i in $(fdisk -l | grep ^"/dev/[sh]d[a-z][0-9]\?" | cut -d' ' -f1) ;do        
    df -h $i | grep "/.*$"
done


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

RAID Level 名称 磁盘数 可用空间 可靠性 I/O能力
RAIDO 条带卷 >=2 100% 1/N 读写能力提升
RAID1 镜像卷 >=2 50% 可允许一块磁盘故障 无
RAID4 固定校验盘 >=3 N-1 可允许一块磁盘故障 读写能力提升
RAID5 分布式校验盘 >=3 N-1 可允许一块磁盘故障 读写能力提升
RAID6 校验码存两份 >=4 N-2 可允同时故障两块盘 读写能力提升
RAID01 raid0+raid1 >=4 50% 可允许一块磁盘故障 读写能力提升
RAID10 raid1+raid0 >=4 50% 同组raid1可故障一块 读写能力提升

5、 创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k;[root@localhost ~]# mdadm -C /dev/md0 -c 128 -x1 -n2 -l1 -a yes /dev/sd[b-d]6、 创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;

[root@localhost ~]# mdadm -C /dev/md0 -n3 -l5 -a yes -c 256 /dev/sd[b-d]
[root@localhost ~]# mkfs.ext4 /dev/md0
[root@localhost ~]# vim /etc/fstab
新增一行
UUID=f9ae0ca3-1c85-4715-a6c5-68da5bdaa838 /backup ext4 noatime,acl 0 0


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

#!/bin/bash
#
if [ $# -eq 0 ];then       
    echo "please give a file name!"       
    exit 3
fi
for i in $@;do      
    echo "$i have $(wc -l $i | cut -d" " -f1) lines."
done
echo "The total of $# file their statistics the number of rows"


8、 写一个脚本
   (1) 传递两个以上字符串当作用户名;
   (2) 创建这些用户;且密码同用户名;   (3) 总结说明共创建了几个用户;

#!/bin/bash#if [ $# -lt 2 ];then     
echo "please give two user name!"     
exit 3
fi
for i in $@;do     
useradd $i && echo "$i" | passwd --stdin $i &> /dev/null        
let usersum++doneecho "创建了$#个用户"

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

#!/bin/bash
#
declare -i sum=0
for ((i=1;i<=20;i++));do        
    useradd visitor$i        
echo "useradd visitor$i success!"        
sum+=$(id -u visitor$i)doneecho "all user uid sum: $sum"


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

#!/bin/bash
#
declare -i sum1=0;
declare -i sum2=0;
for i in {/etc/rc.d/rc.sysinit,/etc/rc.d/init.d/functions,/etc/fstab}; do    
    sum1+=$( grep -c '^#' $i )    
    sum2+=$( grep -c '^[[:space:]]*$' $i )
done
echo "#start line number: $sum1"echo "space line number: $sum2"~


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

#!/bin/bash
#
cat /etc/passwd | grep "/bin/bash$" | cut -d: -f1,3
uuid=$(cat /etc/passwd | grep "/bin/bash$" | cut -d: -f3)
declare -i sum=0
for i in $uuid;do        
let sum+=$idoneecho "uuid sum=$sum"


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

#!/bin/bash
#
declare -i user=0
name=`cut -d: -f1 /etc/passwd`for i in $user;do     
    uid=`echo $i | cut -d: -f3`     
    user=`echo $i |cut -d: -f1`     
echo "$user UID is $uid"     
let sum+=$uiddoneecho "有$sum个此类用户"


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

1、添加磁盘并修改磁盘类型为8e linux LVM
[root@localhost ~]# fdisk -l | grep /dev/sd
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
/dev/sda1   *        2048      616447      307200   83  Linux
/dev/sda2          616448     2715647     1049600   82  Linux swap / Solaris
/dev/sda3         2715648    41943039    19613696   83  Linux
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
/dev/sdb1            2048    20971519    10484736   8e  Linux LVM
Disk /dev/sdc: 10.7 GB, 10737418240 bytes, 20971520 sectors
/dev/sdc1            2048    20971519    10484736   8e  Linux LVM
Disk /dev/sdd: 10.7 GB, 10737418240 bytes, 20971520 sectors
/dev/sdd1            2048    20971519    10484736   8e  Linux LVM
2、创建PV
 pvcreate /dev/sd{b,c,d}1
[root@localhost ~]# pvs
  PV         VG   Fmt  Attr PSize PFree
  /dev/sdb1  myvg lvm2 a--  9.99g 9.99g
  /dev/sdc1  myvg lvm2 a--  9.99g 9.99g
  /dev/sdd1  myvg lvm2 a--  9.99g 9.99g
3、创建VG并设定PE为8M大小
vgcreate myvg -s 8 /dev/sd{b,c,d}1
[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  myvg   3   0   0 wz--n- 29.98g 29.98g
4、创建LV 名字为mylv1
[root@localhost ~]# lvcreate -n mylv1 -L 5G myvg
5、格式化
[root@localhost ~]# mkfs.ext4 /dev/myvg/mylv1
6、挂载
mount /dev/myvg/mylv1 /users
vim /etc/fstab
/dev/myvg/mylv1 /users ext4 acl 0 0

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

#useradd magedu -d /users/magedu#su magedu
#cp -rf /etc/skel/.* /users/magedu


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

[root@localhost ~]# lvextend -L +9G /dev/myvg/mylv1
[root@localhost ~]# resize2fs /dev/myvg/mylv1
[root@localhost ~]# df -lh /dev/myvg/mylv1
Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/myvg-mylv1   14G   56M   13G   1% /users
[root@localhost ~]# ls /users/magedu/
abrt                       cups                        gshadow         machine-id                prelink.conf.d    shells
adjtime                    cupshelpers                 gshadow-        magic                     printcap          smartmontools
......

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

[root@llww3317 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        18G  3.8G   13G  23% /
tmpfs           499M   80K  498M   1% /dev/shm
/dev/sda1       190M   34M  147M  19% /boot
[root@llww3317 ~]# mount /dev/myvg/mylv1 /data/mydata
[root@llww3317 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3              18G  3.8G   13G  23% /
tmpfs                 499M   80K  498M   1% /dev/shm
/dev/sda1             190M   34M  147M  19% /boot
/dev/mapper/myvg-mylv1
                      8.8G   12M  8.3G   1% /data/mydata
[root@llww3317 ~]# cp /etc/issue /data/mydata
[root@llww3317 ~]# umount /dev/myvg/mylv1
[root@llww3317 ~]# e2fsck -f /dev/myvg/mylv1
e2fsck 1.41.12 (17-May-2010)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/myvg/mylv1: 12/589824 files (0.0% non-contiguous), 72672/2359296 blocks
[root@llww3317 ~]# resize2fs /dev/myvg/mylv1 7G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/mylv1 to 1835008 (4k) blocks.
The filesystem on /dev/myvg/mylv1 is now 1835008 blocks long.
[root@llww3317 ~]# lvreduce -L 7G /dev/myvg/mylv1
  WARNING: Reducing active logical volume to 7.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce myvg/mylv1? [y/n]: y
  Size of logical volume myvg/mylv1 changed from 9.00 GiB (1152 extents) to 7.00 GiB (896 extents).
  Logical volume mylv1 successfully resized.
[root@llww3317 ~]# mount /dev/myvg/mylv1 /data/mydata
[root@llww3317 ~]# more /data/mydata/issue 
CentOS release 6.8 (Final)
Kernel \r on an \m

17、对mylv1创建快照,并通过备份数据;要求保留原有的属主属组等信息;lvcreate -L 2G -s -n lv1back/dev/myvg/mylv1

lvcreate -L 2G -s -n lv1back/dev/myvg/mylv1

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

赞 (0)
N21-chenggbN21-chenggb
上一篇 2016-10-09 09:05
下一篇 2016-10-09 09:05

相关推荐

  • n28 第二周作业

    n28 第二周作业

    Linux干货 2017-12-09
  • Linux基础知识之文本处理三剑客sed

    处理文本的工具sed     1.sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”。接着用sed命令处理缓冲区中的内容,完成处理后,把缓冲区中的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。sed主要用来自动编…

    Linux干货 2016-08-11
  • php 配置

      php php不能单独使用都是与httpd结合使用 结合的方式主要是两种一种为模块方式服务于httpd,一种为单独服务方式服务httpd 两种方式不能共存 安装软件包也不相同 网上有官方中文手册 http://php.net/download-docs.php php对中文的支持需要安装php-mbstring php对mysql的支持需要安装…

    Linux干货 2016-11-01
  • rpm实现LAMP

    rpm实现LAMP部署 LAMP概述 LAMP指的Linux(操作系统)、ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web应用平台。常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同…

    Linux干货 2016-11-02
  • 马哥教育网络班22期+第八周课程练习

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。    网桥:工作在OSI模型的数据链路层,将两个局域网连起来,根据MAC地址来转发帧,可以看作是一个“低层的路由器”(路由器工作在OSI模型的网络层,根据网络地址如IP地址进行转发)。它可以有效地联接两个LAN,使本地通信限制在本网段内,并…

    Linux干货 2016-11-17
  • Linux进程管理三剑客htop、ps、dstat

    ps命令 Unix有两种主要分支:官方的Unix(AT&T)和非官方的Unix(加利福利亚大学伯克利分校)。UNIX("带-")和BSD(不带东西)都有自己的ps版本,并且ps版本都很出名,并被广泛使用。最终结果是许多现代版本的ps都同时支持两种类型的选项,即所谓的Unix选项和BSD选项。而且还有一组选项支持GUN的选项. 所以…

    Linux干货 2016-11-22

评论列表(1条)

  • 马哥教育
    马哥教育 2016-10-24 22:03

    1、注意脚本的排版格式。
    2、可以尝试更多方法要实现同一个问题。