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

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

[root@localhost ~]# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
Command (m for help): d
Selected partition 1
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-7832, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-7832, default 7832): +10G
Command (m for help): p
Disk /dev/sdb: 64.4 GB, 64424509440 bytes
255 heads, 63 sectors/track, 7832 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x9f86e179
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1306    10490413+  83  Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

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

[root@localhost ~]# mke2fs -t ext4 -b 2048 -m 2 -L 'MYDATA' /dev/sdb1
[root@localhost ~]# tune2fs -o acl /dev/sdb1

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

[root@localhost ~]# mount -o noexec,noatime /dev/sdb1 /data/mydata

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

[root@localhost ~]# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (1307-7832, default 1307): 
Using default value 1307
Last cylinder, +cylinders or +size{K,M,G} (1307-7832, default 7832): +1G
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap / Solaris)
Command (m for help): p
Disk /dev/sdb: 64.4 GB, 64424509440 bytes
255 heads, 63 sectors/track, 7832 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x9f86e179
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1306    10490413+  83  Linux
/dev/sdb2            1307        1438     1060290   82  Linux swap / Solaris
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.


[root@localhost ~]# mkswap /dev/sdb2
[root@localhost ~]# swapon /dev/sdb2

3、写一个脚本

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

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

#!/bin/bash
#
echo "当前系统的磁盘设备有:"
fdisk -l | grep "^Disk /dev/sd"
echo "每个磁盘的分区以及空间使用信息:"
fdisk -l | grep "^/dev/"
df -h /dev/sd*

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

     RAID 0又称为Stripe或Strping,一般由2两个或以上相同型号和容量的磁盘组成,代表了所有RAID级别中的最高存储性能。

    提高存储性能的原理是:RAID事先将磁盘切出等量的区块(chunk),一旦有数据需要写入RAID设备时就会按照区块大小切割好,

    依次放在各磁盘中,这样当系统有数据请求就可以被多个磁盘并行执行,这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。

     RAID 1镜像存储(mirroring),是一种安全的 RAID 模式。数据被分切(方法和RAID 0)后同等地写入两个或多个磁盘中,导致写入速度会比较 慢,但读取时还是可以多个磁盘并行处理,所以速度会比较快。

    读取速度可以接近所有磁盘吞吐量的总和,写入速度受限于最慢 的磁盘。 RAID1也是磁盘利用率最低的一个。如果用两个不同大小的磁盘建立RAID1,可以用空间为最小的那个磁盘,较大的磁盘多出来的部分可以作他用,不会浪费。如果其中一个物理磁盘出现故障,可以立即从第二个磁盘上获取数据。即使一个磁盘出现故障,也不会丢失任何数据。

    RAID 3 使用字节级别的条带化技术,并采用专用的奇偶校验磁盘RAID 3 阵列能在一个磁盘出现故障的情况下确保数据不丢失。如果一个物理磁盘出现故障,该磁盘上的数据可以重建到更换磁盘上。如果数据尚未重建到更换磁盘上,而此时又有一个磁盘出现故障,那么阵列中的所有数据都将丢失。并且由于存放奇偶校验码的磁盘压力很大,容易成为瓶颈

    RAID 5将奇偶校验码分散在各个磁盘上,避免了单块校验盘出现瓶颈。RAID5的读出效率很高,写入效率一般,块式的集体访问效率不错。 因为奇偶校验码在不同的磁盘上,所以提高了可靠性。但是它对数据传输的并行性解决不好,而且控制器的设计也相当困难。 RAID 3 与RAID 5相比,重要的区别在于RAID 3每进行一次数据传输,需涉及到所有的阵列盘。而对于RAID 5来说,大部分数据传输只对一块磁盘操作,可进行并行操作。在RAID 5中有“写损失”,即每一次写操作,将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。 最多允许损坏1块磁盘。

    RAID 01和RAID 10这个RAID级别就是针对上面的特点与不足,把RAID 0和RAID 1这两个结合起来了。 所谓的RAID 01就是:1.先让组成 RAID 02.再组成 RAID 1,这就是 RAID 0+1 所谓的RAID 10就是:1.先组成 RAID 12.再组成 RAID 0,这就是RAID 1+0 特点与不足:由于具有 RAID 0 的优点,所以效能得以提升,由于具有 RAID 1 的优点,所以数据得以备份。 但是也由于 RAID 1 的缺点,所以总容量会少一半用来做为备份。

    

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

[root@localhost ~]# fdisk /dev/sdb

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (1439-7832, default 1439): 
Using default value 1439
Last cylinder, +cylinders or +size{K,M,G} (1439-7832, default 7832): +10G

Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): fd
Changed system type of partition 3 to fd (Linux raid autodetect)

Command (m for help): p

Disk /dev/sdb: 64.4 GB, 64424509440 bytes
255 heads, 63 sectors/track, 7832 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x9f86e179

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1306    10490413+  83  Linux
/dev/sdb2            1307        1438     1060290   82  Linux swap / Solaris
/dev/sdb3            1439        2744    10490445   fd  Linux raid autodetect

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@localhost ~]# partx -a /dev/sdb
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2

[root@localhost ~]# mdadm -C /dev/md0 -n2 -ayes -x1 -c128 -l1 /dev/sdb3 /dev/sda3

6、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂

[root@localhost ~]# mdadm -C /dev/md0 -n3 -ayes -x1 -c256 -l5 /dev/sdb3 /dev/sda3 /dev/sdc1
[root@localhost ~]# mke2fs -t ext4 /dev/md0
[root@localhost ~]# mount -o noatime,acl /dev/md0 /backup

7、写一个脚本

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

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

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

#!/bin/bash
#
declare -i i=0
if (( $# < 1 )); then
echo "请输入一个或以上字符串"
fi
for filename in $*; do
if [ -f $filename ]; then
echo "$filename line num: $( cat $filename | wc -l )"
let i=i+1
else
echo "file no exsit"
fi
done
echo "已统计文件数量:$i"

8、写一个脚本

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

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

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

#!/bin/bash
#
declare -i i=0
if (( $# < 2 )); then
echo "请输入两个或以上字符串"
fi
for uname in $*; do
if id $uname &> /dev/null; then
echo "此用户已存在,请重新输入!"
else
useradd $uname
echo "$uname" | passwd --stdin $uname
let i=i+1
fi
done
echo "已创建用户数量:$i"

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

#!/bin/bash
#
declare -i i=1
declare -i uid=0
declare -i sum=0
declare -i a=0
while (( $i <= 20 )); do
#userdel -r visitor$i
useradd visitor$i
uid=$(tail -1 /etc/passwd | cut -d: -f3)
let sum=sum+$uid
let i++
done
echo "visitor1-visitor20的ID之和:$sum"

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

#!/bin/bash
#
declare -i i=0
for filename in {/etc/rc.d/rc.sysinit,/etc/rc.d/init.d/functions,/etc/fstab}; do
echo “$filename以#号开头的行数:$(grep "^#" $filename | wc -l)”
echo "$filename的空白行数:$(grep "^$" $filename | wc -l)"
done

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

#!/bin/bash
#
declare -i sum=0
declare -i num=0
awk -F: '/bash$/{print $1, $3}' /etc/passwd
for num in $(awk -F: '/bash$/{print $3}' /etc/passwd); do
let sum=sum+$num
done
echo $sum

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

[root@localhost ~]# cat test
#!/bin/bash
#
declare -i i=0
for uname in $(cut -d: -f1 /etc/passwd); do
group=$(id $uname | cut -d" " -f3 | awk -F, '{print $2}')
if [ -n "$group" ]; then
echo $uname
let i++
fi
done
echo $i

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

[root@localhost ~]# pvcreate /dev/sd{b1,c1}
[root@localhost ~]# vgcreate -s 20G myvg /dev/sdb1 /dev/sdc1 -s 8M
  Volume group "myvg" successfully created
[root@localhost ~]# lvcreate -L 5G -n mylv1 myvg
  Logical volume "mylv1" created.
[root@localhost ~]# mkfs.ext4 /dev/myvg/mylv1
[root@localhost ~]# echo "UUID="79112d75-4482-4313-b9ac-3d2a930485c2"    /users    ext4    defaults,acl    0 0" >> /etc/fstab

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

[root@localhost ~]# useradd magedu -d /users/magedu
[root@localhost ~]# su magedu
[magedu@localhost root]$ cp /etc/fstab /etc/issue /etc/passwd ~
[magedu@localhost root]$ ll /users/magedu/
总用量 12
-rw-r--r-- 1 magedu magedu  862 7月  29 01:47 fstab
-rw-r--r-- 1 magedu magedu   47 7月  29 01:47 issue
-rw-r--r-- 1 magedu magedu 2570 7月  29 01:47 passwd

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

[root@localhost ~]# lvextend -L 9G /dev/myvg/mylv1
  Size of logical volume myvg/mylv1 changed from 5.00 GiB (640 extents) to 9.00 GiB (1152 extents).
  Logical volume mylv1 successfully resized
[root@localhost ~]# df -h /dev/myvg/mylv1 
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/myvg-mylv1
                      4.8G   10M  4.6G   1% /users
[root@localhost ~]# resize2fs /dev/myvg/mylv1 
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/mylv1 is mounted on /users; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/myvg/mylv1 to 2359296 (4k) blocks.
The filesystem on /dev/myvg/mylv1 is now 2359296 blocks long.
[root@localhost ~]# df -h /dev/myvg/mylv1 
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/myvg-mylv1
                      8.8G   12M  8.3G   1% /users
[root@localhost ~]# ll /users/magedu/
总用量 12
-rw-r--r-- 1 magedu magedu  862 7月  29 02:04 fstab
-rw-r--r-- 1 magedu magedu   47 7月  29 02:04 issue
-rw-r--r-- 1 magedu magedu 2570 7月  29 02:04 passwd

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

[root@localhost ~]# umount /users
[root@localhost ~]# e2fsck -f /dev/myvg/mylv1 
e2fsck 1.41.12 (17-May-2010)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/myvg/mylv1: 23/589824 files (0.0% non-contiguous), 72683/2359296 blocks
[root@localhost ~]# 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@localhost ~]# lv
lvchange     lvdisplay    lvmchange    lvmdump      lvmsar       lvrename     lvscan       
lvconvert    lvextend     lvmconf      lvmetad      lvreduce     lvresize     
lvcreate     lvm          lvmdiskscan  lvmsadc      lvremove     lvs          
[root@localhost ~]# lvreduce -L 5G /dev/myvg/mylv1 
  WARNING: Reducing active logical volume to 5.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mylv1? [y/n]: y
  Size of logical volume myvg/mylv1 changed from 9.00 GiB (1152 extents) to 5.00 GiB (640 extents).
  Logical volume mylv1 successfully resized

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

[root@6a magedu]# lvcreate -L 2G -s -p r -n sn_lv /dev/myvg/mylv1

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

(0)
mouse015110mouse015110
上一篇 2016-08-02
下一篇 2016-08-02

相关推荐

  • class-6 积累应用

    1、三种权限rwx对文件和目录的不同意义     ## 读写执行对于文件的意义         r:针对于文本文件         w:可修改内容,但不能删除文件本身,需要x权限配合  &n…

    Linux干货 2016-08-05
  • 用户管理命令之NBA版

    用户管理命令之NBA版 本文纯属扯淡,如有不严谨之处,还请海涵。 1 groupadd 作用:创建一个属组 格式:groupadd [选项] 属组名 选项: -:选项为空 创建新属组 -g:指定组GID,默认是GID+1 实例 1.1 添加属组team,指定组ID为1111      groupadd -g …

    Linux干货 2017-03-27
  • CetnOS6启动流程以及LVM下的fstab及boot恢复实验

    centos6启动流程 主动读取BIOS,通过CMOS加载硬件信息 ,并进行POST,指定第一个可启动的设备 ROM:BIOS,Basic Input and Output System,保存着计算机系统最重要的基本输入输出程序,系统信息设置,开机加电自检程序RAM:保存各项参数的设定 读取第一个可启动设备MBR的引导加载程序(grub)的启动信息 MBR:…

    Linux干货 2017-05-13
  • N25 – week 3 blog

    本周的blog开始使用了代码语言格式,我原本以为自然的才是最好的,orginal的才是最美的,但是我错了。。。我发现同学们都在各种markdown,各种排版。我说过我早已过了care这些的年纪,但是我不能脱离群体单独存在,所以我底下了傲娇的头。 本周开始blog标题改为英文,逼格满满,麦满分~ 下面开始第$wk_num周的作业 [root@dhcp-10-1…

    Linux干货 2016-12-19
  • LVM创建实例及相关注释

    LVM创建    pv—>vg—->lv—->快照 创建前准备了四块1g硬盘分别为:sdb  sdc sdd  sde,并分别给四块盘划分了1G的空间,并指定了分区系统类型为8e(即Linux LVM) [root@localhost ~]# fdisk /dev/…

    Linux干货 2015-06-08
  • linux 文件权限以及用户策略 讲解

     linux 文件权限以及用户策略 讲解    由于linux系统是一个多用户使用的系统,对于各个用户指定的文件或目录必须存在一套管理系统,以防止多用户对相同文件的混淆使用。于是催生出了linux系统文件的用户权限设置。其存在的意义就是每一个文件或目录对于不同的用户区分读取,写入,执行三种权限,即:r,w,x。下面将详…

    Linux干货 2016-08-05

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-02 11:56

    写的很好,排版也很棒,加油,所有的数值比较都不对,在回头看看视频吧