【N25第七周作业】

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

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

[root@localhost ~]# mke2fs -t ext4 -b 2048 -m 2 -L MYDATA /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=MYDATA
OS type: Linux
块大小=2048 (log=1)
分块大小=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 5242880 blocks
104857 blocks (2.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=273678336
320 block groups
16384 blocks per group, 16384 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 
    16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 
    2048000, 3981312

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

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

 [root@localhost ~]# mkdir /data/mydata -pv
mkdir: 已创建目录 "/data"
mkdir: 已创建目录 "/data/mydata"
[root@localhost ~]# mount -o noexec,noatime,acl /dev/sdb1 /data/mydata
[root@localhost ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        50G  1.2G   49G    3% /
devtmpfs        480M     0  480M    0% /dev
tmpfs           489M     0  489M    0% /dev/shm
tmpfs           489M  6.7M  483M    2% /run
tmpfs           489M     0  489M    0% /sys/fs/cgroup
/dev/sda5        28G   33M   28G    1% /home
/dev/sda1       497M  118M  379M   24% /boot
tmpfs            98M     0   98M    0% /run/user/0
/dev/sdb1       9.8G   13M  9.6G    1% /data/mydata

[root@localhost ~]# dumpe2fs -h  /dev/sdb1
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: LABEL="MYDATA" UUID="4c5efe18-1e76-4722-909b-a931c9cea4af" TYPE="ext4" 
[root@localhost ~]# vi /etc/fstab 
[root@localhost ~]# tail -1 /etc/fstab
UUID=4c5efe18-1e76-4722-909b-a931c9cea4af /data/mydata            ext4    defaults    0 0

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

[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): 
Using default response p
分区号 (2-4,默认 2):2
起始 扇区 (20973568-41943039,默认为 20973568):
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-41943039,默认为 41943039):+1G           
分区 2 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x311490c4

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux
/dev/sdb2        20973568    23070719     1048576   83  Linux
命令(输入 m 获取帮助):t
分区号 (1,2,默认 2):2
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”

命令(输入 m 获取帮助):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)
正在同步磁盘。
[root@localhost ~]# fdisk -l

磁盘 /dev/sda:85.9 GB, 85899345920 字节,167772160 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a0565

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048     5222399     2098176   82  Linux swap / Solaris
/dev/sda3         5222400   110079999    52428800   83  Linux
/dev/sda4       110080000   167772159    28846080    5  Extended
/dev/sda5       110082048   167772159    28845056   83  Linux

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x311490c4

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux
/dev/sdb2        20973568    23070719     1048576   82  Linux swap / Solaris
[root@localhost ~]# mkswap /dev/sdb2
/dev/sdb2: 没有那个文件或目录
[root@localhost ~]# partx -a /dev/sdb
partx: /dev/sdb: error adding partition 1
[root@localhost ~]# partx -a /dev/sdb
partx: /dev/sdb: error adding partitions 1-2
[root@localhost ~]# partx -a /dev/sdb
partx: /dev/sdb: error adding partitions 1-2
[root@localhost ~]# cat /proc/partitions 
major minor  #blocks  name

   2        0          4 fd0
   8        0   83886080 sda
   8        1     512000 sda1
   8        2    2098176 sda2
   8        3   52428800 sda3
   8        4          1 sda4
   8        5   28845056 sda5
   8       16   20971520 sdb
   8       17   10485760 sdb1
   8       18    1048576 sdb2
  11        0    1048575 sr0
[root@localhost ~]# mkswap /dev/sdb2
正在设置交换空间版本 1,大小 = 1048572 KiB
无标签,UUID=09374644-2556-4b3f-b267-893f87c2a768
[root@localhost ~]# swapon /dev/sdb2
[root@localhost ~]# vi /etc/fstab 
[root@localhost ~]# tail -1 /etc/fstab
UUID=09374644-2556-4b3f-b267-893f87c2a768 swap            swap    defaults        0 0

3、写一个脚本

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

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

#!/bin/bash
#
FILESYSTEM=`fdisk -l|grep -o '/dev/s[hd][a-z]\>'`
for i in $FILESYSTEM;do
    echo -e  "\033[31m disk : $i \033[0m"
    echo
    df -h|egrep "文件系统|Filesystem|$i"
    echo "==========================================="
done


[root@localhost data]# sh b.sh 
 disk : /dev/sdb 

文件系统        容量  已用  可用 已用% 挂载点
/dev/sdb1       9.8G   13M  9.6G    1% /data/mydata
===========================================
 disk : /dev/sda 

文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        50G  1.3G   49G    3% /
/dev/sda5        28G   33M   28G    1% /home
/dev/sda1       497M  118M  379M   24% /boot
===========================================

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

组成RAID阵列的不同方式称为RAID级别,不同的级别有着不同的性能、不同的数据可靠性和不同的存储成本;
主要有以下几种常用的阵列:
RAID0:以条带的形式将数据均匀分布在阵列的各个磁盘上
【N25第七周作业】
所需成员磁盘数 2个或更多,最低为2个
优点 极高的磁盘读写效率;不存在校验,
不会占用太多CPU资源设计、使用和
配置比较简单
缺点 无冗余,不能用于对数据安全性要求
高的环境
适用领域 视频生成和编辑、图像编辑
其他需要大的传输带宽的操作
RAID1:以镜像为冗余方式,对虚拟磁盘上的数据做多分拷贝,放在成员磁盘上
【N25第七周作业】
所需成员磁盘数 2N个,(N≥1),最低为2个
优点 具有100%数据冗余,提供最高的数据安全保障
理论上可以实现2倍的读取效率
设计和使用比较简单
缺点 开销大,空间利用率只有50%
在写性能方面提升不大
适用领域 财务、金融等高可用、高安全的数据存储环境
RAID5:采用独立存取的阵列方式,校验信息被均匀的分散在阵列的各个磁盘上
【N25第七周作业】
所需成员磁盘数 3个或更多,最低为3个
优点 读性能比较高
中等的写性能
校验信息的分布式存取,避免出现写操作的瓶颈
缺点 控制器设计复杂
磁盘重建的过程比较复杂
适用领域 文件服务器、Email服务器、Web服务器等环境
数据库应用
组合不同级别RAID的目的:不同级别的RAID在性能、冗余、价格等方面做了不同程度的折中,可以扬长避短,产生具有优势特性的混合RAID级别,一般使用RAID10,RAID1,RAID5,RAID50等比较多
RAID10:先镜像,再条带化
【N25第七周作业】
所需成员磁盘数 2N个,(N≥2),最低为4个
优点 读性能很高
写性能比较好
数据安全性好,允许同时有N个磁盘失效
缺点 空间利用率只有50%
开销大
适用领域 多用于要求高可用性和高安全性的数据库应用
RAID50:先实现RAID5再条带化
【N25第七周作业】
所需成员磁盘数 6个或更多,最低为6个
优点 比RAID5有更好的读性能
比相同容量的RAID5重建时间更短
可以容许N个磁盘同时失效
缺点 设计复杂,比较难实现
同一个RAID5组内的两个磁盘失效会导致整个阵列的失效
适用领域 大型数据库服务器、应用服务器、文件服务器等应用
常用RAID级别的比较:
RAID级别 RAID0 RAID1 RAID3 RAID5 RAID10
别名 条带 镜像 专用奇偶位条带 分布奇偶位条带 镜像阵列条带
容错性 无 有 有 有 有
冗余类型 无 镜像 奇偶校验 奇偶校验 镜像
备盘 无 有 有 有 有
读性能 高 低 高 高 中间
随机写性能 高 低 最低 低 中间
连续写性能 高 低 低 低 中间
需要的磁盘数 2个或更多 2个或2N个 3个或更多 3个或更多 4个或2N(N≥2)
可用容量 总的磁盘容量 磁盘容量的50% 磁盘容量的(N-1)/N 磁盘容量的(N-1)/N 磁盘容量的50%

5、创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k;
6、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;
7、写一个脚本
   (1) 接受一个以上文件路径作为参数;
   (2) 显示每个文件拥有的行数;

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

#!/bin/bash
#
SUM=0
[ $# -lt 1 ] && echo "you must input at least one parameter" && exit 2
for file in $@;do
    if [ -f $file ];then
        LINES=`cat $file |wc -l`
        echo "$file have $LINES lines"
        let SUM=$SUM+$LINES
    else
        echo "$file is not exist"
    fi
done
echo "$@ have $SUM lines in total."

[root@localhost data]# sh  count.sh /etc/fstab /etc/profile 
/etc/fstab have 14 lines
/etc/profile have 76 lines
/etc/fstab /etc/profile have 90 lines in total.
[root@localhost data]# sh  count.sh /etc/fstab /etc/profsad
/etc/fstab have 14 lines
/etc/profsad is not exist
/etc/fstab /etc/profsad have 14 lines in total.

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

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

#!/bin/bash
#
SUM=0
[ $# -lt 1 ] && echo "you must input at least one string" && exit 2
for string in $*;do
    [ $(echo "$string" |wc -c) -le 4 ] && echo "$string less than 4 letters" && continue
    if id $string &> /dev/null;then
        echo "user $string is exist!"
    else
        useradd $string
        echo "$string" |passwd --stdin $string &> /dev/null
        echo "add user $string sucess!"
        let SUM+=1
    fi
done
echo "add $SUM users in total."

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

#!/bin/bash
#

SUM_UID=0

for((i=1;i<=20;i++));do
    adduser visitor$i
    UID1=`id -u visitor$i`
    let SUM_UID+=$UID1
done
echo "ID intotle $SUM_UID"

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.local  /etc/rc.d/init.d/functions  /etc/fstab;do
    num1=`egrep "^#" $file|wc -l`
    let SUM1+=$num1
    num2=`egrep "^$" $file|wc -l`
    let SUM2+=$num2
done

echo "SUM1 have $SUM1"
echo "SUM2 have $SUM2"

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

#!/bin/bash
#
SUM=0
egrep 'bash$' /etc/passwd|cut -d: -f1,3
for i in `egrep 'bash$' /etc/passwd|cut -d: -f3`;do
    let SUM+=$i 
done
echo "SUMUID is $SUM"

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

赞 (0)
shengsheng
上一篇 2017-04-13 08:57
下一篇 2017-04-13 14:02

相关推荐

  • 8.10作业

    1、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小。 echo  "your host is `hostname` " echo  "ip address is `ifconfig | sed -n…

    Linux干货 2016-08-15
  • N22-第十一周作业

    第十一周作业 1、详细描述一次加密通讯的过程,结合图示最佳 (1)为了做到数据的安全,应该同时满足 保密性 完整性 可用性 (2)假设A,B通信,A是客户机,B是服务器 a、客户端向服务器端发送自己支持的加密方式,并且向服务器端请求其CA颁发给的证书 b、服务器选择共同支持的加密方式并发送自己的证书; c、客户端收到其证书,并验证证书,证书必须同时满足以下条…

    Linux干货 2016-12-06
  • shell– 脚本编程

    编程基础 脚本基本格式 变量 运算 条件测试 流程控制 函数 数组 高级字符串操作 高级变量 配置用户环境 编程基础 程序:指令+数据 程序编程风格:     过程式:以指令为中心,数据服务于指令     对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释…

    Linux干货 2016-08-21
  • 2016 10 19 第5天作业

    20161019第5天作业 软链接和硬链接的区别 硬链接 ①硬链接文件不能跨分区创建 ②一个硬链接文件的删除不影响其他链接的访问 ③链接文件指向的源文件被删除后,链接文件还能正常访问源文件的数据 ④硬链接的文件类型是 –  普通文件 ⑤硬链接和源文件的属性(大小,权限,时间戳,Inode号)相同 ⑥硬链接不能对目录创建 ⑦创建硬链接会增…

    Linux干货 2016-10-20
  • awk入门应用

    awk概述使用语法常用命令选项相关输出命令print item1,item2,…printf FORMAT,item1,item2,….相关格式符相关修饰符相关内建变量相关内置函数相关操作符相关模式相关控制语句及示例if(condition) statementsif(condition){statements} else {statements}while…

    Linux干货 2016-12-04
  • DNS配置

     DNS配置 基本的配置准备 1.安装bind 2.开启named服务 一、正向解析库 1、修改/etc/named.conf配置文件 vim /etc/named.conf 修改如下行 listen-on port 53 { 10.1.44.2; } allow-query     { any; } recursion no;…

    Linux干货 2016-10-09

评论列表(1条)

  • 马哥教育
    马哥教育 2017-05-04 14:47

    这次作业涵盖的知识点比较广泛,但是完成的特别好,再接再励。