马哥教育网络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)
上一篇 2016-08-02 10:55
下一篇 2016-08-02 10:55

相关推荐

  • ansible-playbook组件解析及操作全解

    一、ansible-playbook介绍:  playbook是由一个或多个”play”组成的列表。play的主要功能在于将事先归为一组的主机装扮成事先通过ansible中的task定义好的角色。从根本上来将,所谓的task无法是调用ansible的一个module。将多个paly组织在一个playbook中,即可以让他们联通起来按事…

    2015-08-24
  • Memcached命令

    Memcache 的命令行用法: 1、启动Memcache 常用参数    memcached 1.4.3      -p <num>      设置端口号(默认不设置为: 11211)      -U <num> &nbsp…

    Linux干货 2015-05-18
  • inode的理解

    一、inode是什么 理解inode,要从文件储存说起。 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的&q…

    Linux干货 2017-01-16
  • Linux命令语法及其帮助信息

    一、Linux命令语法 1、通用格式:command options argument 2、Command: 3、Options: 4、Argument: 二、Linux命令帮助信息获取途径 1、help命令 && –help选项 2、manual (1)章节 (2)语法 (3)man命令输出详解   &nbs…

    Linux干货 2016-09-19
  • 文件查找命令之locate、find简析

    文件查找命令之locate、find简析    在工作中经常会在文件系统上查找符合条件的文件,今天学习了文件查找命令,在此简析locate和find两个文件查找工具。 一、杂项知识整理 1、find的选项-user的实质是通过UID查找,如果两个用户的UID相同,其会显示两个用户的所有符合条件的文件。 2、查找时-name "*…

    Linux干货 2016-08-15

评论列表(1条)

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

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