【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
下一篇 2017-04-13

相关推荐

  • 加密·解密·PKI详解及如何创建私有CA

    加密解密技术基础: 安全的目标:   保密性:confidentiality 确保通信信息不被任何无关的人看到 完整性:integrity 实现通信双方的报文不会产生信息丢失 数据完整性 系统完整性 可用性:availability 通信任何一方产生的信息应当对授权实体可用 攻击类型:   威胁保密性的攻击:窃听、通信…

    2017-05-30
  • 网络管理

    常见的网络物理组件:路由器、交换机、PC机 网络的特性:速度、成本、安全性、可用性、可扩展性、可靠性、拓扑 拓扑结构:           物理拓扑:总线拓扑               &…

    Linux干货 2017-05-09
  • 基础指令使用篇 Linux版

    回显,回声 echo echo hello > /dve/pts/1 打开图形界面 init 5   关闭图形界面 init 3 ctrl+alt+F1-6字符,F7图形界面 chvt 改变虚拟终端 chvt +数字 startx  图形的软件打开 poweroff centOS 6.8与7.2都正常关闭断电 hostname 显示…

    系统运维 2016-08-04
  • 2018近期it运维大会合集,这五场值得关注!

    17年,我们不仅看到Google、Facebook、Amazon、LinkedIn、Netflix、Airbnb等互联网巨头在与DevOps亲密接触,传统软件公司如Adobe、IBM、Microsoft、SAP等,亦或是网络业务非核心的苹果、沃尔玛、索尼影视娱乐、星巴克等都在采用DevOps,更看到了国内一大片企业开始钟情于此。

    2018-03-01
  • 小型网站MYSQL问题二:Percona Xtrabackup实现数据库备份和恢复

    故事背景:前面大胆的选择了innodb,接下来就要考虑数据库的备份和恢复。俗话说“常在河边走,哪能不湿鞋“,自从接触数据这块,使我一直对它保持敬畏之心。在这里使用了percona公司的xtrabckup工具来实现数据库备份和恢复。操作步骤记录如下: 1、安装软件仓库(不要问我为什么不用源码安装,好吧,其实我懒。) wget https://www.…

    数据库运维 2015-12-19
  • Linux Services and Security–part2

    一、请描述一次完整的http请求处理过程 (1).建立或处理连接:接收请求或拒绝请求; (2).接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求的过程; 接收请求的模型: 并发访问响应模型: 单进程I/O模型:启动一个进程处理用户请求;这意味着,一次只能处理一个请求,多个请求被串行响应; 多进程I/O结构:并行启动多个进程,每个进程响应一个请…

    Linux干货 2017-11-13

评论列表(1条)

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

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