N25期第七周作业

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

     

    1. 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl
    2. 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳
fdisk /dev/sdb  # size 10G type 83
mke2fs -t ext4 -b 2048 -m 2 -L MYDATA /dev/sdb1   
tune2fs -o acl /dev/sdb1
mount -L MYDATA /data/mydata -o noexec,noatime
  1. 创建一个大小为1G的swap分区,并创建好文件系统,并启用之
fdisk /dev/sdb # size 1G type 82
mkswap /dev/sdb1
swapon /dev/sdb1
  1. 写一个脚本

     

    1. 获取并列出当前系统上的所有磁盘设备
    2. 显示每个磁盘设备上每个分区相关的空间使用信息
fdisk -l |grep "^Disk /dev[sh]d*" 
df -h
  1. 总结RAID的各个级别及其组合方式和性能的不同

RAID:Redundant Arrays of Inexpensive Disks

RAID级别:RAID0,RAID1,RAID5,RAID10,RAID01,RAID6,RAID50,RAID60
RAID-0
  • 条带卷
  • 至少需要两块磁盘并行处理,将数据分两部分读写
  • 读写性能提高,raid中性能最高
  • 无容错性
  • 可用空间:N*min(s1,s2,…)
RAID-1
  • 镜像卷
  • 至少需要两块磁盘,两块磁盘存储相同数据,用于备份
  • 读写性能相当于一块独立磁盘,无提升
  • 容错性高,raid中容错性最高
  • 可用空间1*min(s1,s2,…)
RAID-4
  • 至少三块磁盘
  • 两块磁盘做数据存储,第三块用作独立存储数据校验码
  • 读写性能提高
  • 有容错性为一块磁盘
RAID-5
  • 至少三块磁盘
  • 三块磁盘存储数据及校验码,校验码分别存储在三个磁盘上
  • 读写性能提高
  • 有容错性为一块磁盘
  • 可用空间:(N-1)*min(s1,s2,…)
RAID-6
  • 至少四块磁盘
  • 增加第二个独立的奇偶校验信息块,分别以不同算法计算
  • 有容错性为两块磁盘
  • 可用空间:(N-2)*min(s1,s2,…)
RAID-10
  • 至少四块磁盘
  • 两两磁盘分别做raid1,再将两raid1阵列做raid0
  • 读写性能提高
  • 有容错性为两块,不同raid1中最多损失一块
  • 可用空间:N*min(s1,s2,…)/2
RAID-50
  • 至少六块磁盘
  • 三三磁盘分别做raid5,再将两raid5阵列做raid0
  • 读写能力提高
  • 有容错性为两块磁盘,不同raid5中做多损失一块磁盘
RAID-60
  • 至少八块磁盘
  • 四四磁盘分别做raid6,再将两raid6阵列做raid0
  • 读写能力提高
  • 有容错性为四块磁盘,不同raid6中最多损坏两块磁盘
  1. 创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k
fdisk /dev/sdb    # 分区大小10G,类型fd
fdisk /dev/sdc    # 分区大小10G,类型fd
fdisk /dev/sdd    # 分区大小10G,类型fd
mdadm -C /dev/md1 -n 3 -x 1 -c 128 -l 1 /dev/sdb5 /dev/sdc5 /dev/sdd5
mdadm -D /dev/md1
  1. 创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能
mdadm -C /dev/md1 -c 256 -n 3 -l 5 /dev/sdb5 /dev/sdc5 /dev/sdd5 
mkfs -t ext4 /dev/md1
mkdir /backup
vim /etc/fstab
更新为    /backup    /dev/md1    ext4    noatime,acl   0  0
  1. 写一个脚本

     

    1. 接受一个以上文件路径作为参数
    2. 显示每个文件拥有的行数
    3. 总结说明本次共为几个文件统计了其行数
#!/bin/bash
sum=0
if [ $# -le 0 ];then
    echo "please input a directory"
else
    for i in "$@";do
        if [ -e $i ];then
            line=`wc -l $i|cut -d' ' -f1`
            echo "$i has $line lines"
            sum=$(($sum+1))
        else
            echo "no such $i file"
        fi
    done
    echo "The total count file is $sum"
fi
  1. 写一个脚本

     

    1. 传递两个以上字符串当作用户名
    2. 创建这些用户;且密码同用户名
    3. 总结说明共创建了几个用户
#!/bin/bash
sum=0
for i in $*;do
    useradd $i
    echo $i|passwd --stdin $i
    sum=$(($sum+1))
done
echo "total created users is $sum"
  1. 写一个脚本,新建20个用户,visitor1-visitor20;计算他们的ID之和
#!/bin/bash
sum=0
for i in `seq 1 20`;do
    useradd visitor${i}
    id_number=`id -u visitor${i}`
    sum=$(($sum+$id_number))
done
echo $sum
  1. 写一脚本,分别统计/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#号开头的行数之和,以及总的空白行数
#!/bin/bash
line_total=0
blank_total=0
for file in `echo /etc/{fstab,rc.d/rc.sysinit,rc.d/init.d/functions}`;do
    line_count=$(grep "^#" $file|wc -l) 
    blank_count=$(grep "^$" $file|wc -l)
    line_total=$[line_total+line_count]
    blank_total=$[blank_total+blank_count]
echo "total # lines is ${line_total},total blank lines is ${blank_total}"
  1. 写一个脚本,显示当前系统上所有默认shell为bash的用户的用户名、UID以及此类所有用户的UID之和
#!/bin/bash
sum=0
for name in `grep "bash$" /etc/passwd |cut -d: -f1`;do
    UiD=`id -u ${name}`
    echo "username is ${name},userid is ${UiD}"
    sum=$((${sum}+$UiD))
done
echo "total user id sum is ${sum}"
  1. 写一个脚本,显示当前系统上所有,拥有附加组的用户的用户名;并说明共有多少个此类用户
#!/bin/bash
declare -i sum=0
userlist=`cat /etc/passwd |cut -d: -f1`
for username in ${userlist};do
    id ${username} |cut -d' ' -f3 |grep "," &> /dev/null
    if [ $? -eq 0 ]
    then
        echo "${username}"
        sum=$[sum+1]
    fi
done
    echo "tocal own addition group users is ${sum}"
  1. 创建一个由至少两个物理卷组成的大小为20G的卷组;要求,PE大小为8M;而在卷组中创建一个大小为5G的逻辑卷mylv1,格式化为ext4文件系统,开机自动挂载至/users目录,支持acl
fdisk /dev/sdb  //sdb5 分区大小10G,类型8e
fdisk /dev/sdc  //sdc5 分区大小10G,类型8e
pvcreate /dev/sdb5 /dev/sdc5
vgcreate -s 8M myvg1 /dev/sdb5 /dev/sdc5
lvcreate -L 5G  -n mylv1 myvg1
mkfs -t ext4 /dev/myvg1/mylv1
mkdir /users
vim /etc/fstab
/users  /dev/myvg1/mylv1  ext4  defaults,acl  0  0
mount -a
  1. 新建用户magedu;其家目录为/users/magedu,而后su切换至此用户,复制多个文件至家目录
useradd -d /users/magedu magedu
su - magedu
cp /etc/issue /etc/fstab  ~
  1. 扩展mylv1至9G,确保扩展完成后原有数据完全可用
lvextend -L 9G /dev/myvg1/mylv1
resize2fs /dev/myvg1/mylv1 9G
  1. 缩减mylv1至7G,确保缩减完成后原有数据完全可用
umount /dev/myvg1/mylv1
e2fsck -f /dev/myvg1/mylv1
resize2fs /dev/myvg1/mylv1  7G 
lvreduce  -L  7G  /dev/myvg1/mylv1
mount /dev/myvg1/mylv1 /users
  1. 对mylv1创建快照,并通过备份数据;要求保留原有的属主属组等信息
lvcreate -L 500M -p r -n mylv1-snapshot -s /dev/myvg1/mylv1
mkdir /mnt/mylv_ss
mount /dev/myvg1/mylv1-snapshot /mnt/mylv_ss
cp -a "/mnt/mylv_ss/*" /tmp
umount /mnt/mylv_ss 
lvremove /dev/myvg1/mylv1-snapshot

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

(0)
上一篇 2017-02-28 14:23
下一篇 2017-03-01 11:41

相关推荐

  • rpm包管理

    一、概述 RPM 是RPM Package Manager(RPM软件包管理器)的缩写。由redhat公司的Redhat package manager改名而来,成了RedHat的工业标准 二、rpm的命名格式: rpm包的命名格式:name-version-relase.arch.rpm version: major.minor.release,同源代码 …

    Linux干货 2015-10-07
  • vim shell 练习作业题

    vim练习题 1. 复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符   :%s/^[[:blank:]]\+//g 【注意要把/etc/profile复制到/tmp下,cp  /etc/profile  /tmp(尽量不要修改原文件)】 2. 复制/etc/rc.d…

    2017-08-07
  • 文件处理工具及正则表达式练习

    本节练习均在centos7系统下实现,部分练习只截取部分截图,另外排版的事情我已经放弃了! 1.找出/etc/rc.d/init.d/functions文件中行首为某单词(包括下划线)后面跟一个小括号的行 注:^ 行首, . 匹配任意单个字符,* 匹配前面的字符任意次 突然发现前面解法错误,没有排除空格后加小括号的情况,下面是正确做法 2.统计last命令中…

    Linux干货 2017-07-29
  • RHCE基础实验

    实验:配额实现 1. 启用配额功能 vim /etc/fstab defaults usrquota,grpquota mount -o remount /home 2. 创建配额数据库 quotacheck -cug /home 3. 启用数据库 quotaon /home quotaon -p /home 查看 4. edquota wang setqu…

    Linux干货 2017-05-02
  • jenkins+gitlab构建安卓自动编译环境

        因工作关系接触到接触到安卓自动编译环境,网上的资料都推荐了jenkins,因为第一次接触安卓和jenkins,踩了不少的坑,有总结才有进步。    gitlab环境之前已经安装完成可用,具体步骤另外详解吧。本例目标是在gitlab可用前提下,通过jenkins将git仓库的代码自行编译打包,生成可用的apk安装…

    Linux干货 2016-07-16
  • linux网络命令与软件管理

    1、描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景和区别 网桥也叫桥接器,是连接两个局域网的一种存储/转发设备,用来连接不同网段。 集线器称为“Hub”,主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。 二层交换机工作于OSI模型的第2层(数据链路层),可识别数据包中的MAC地址信息,…

    Linux干货 2016-12-18

评论列表(1条)

  • 马哥教育
    马哥教育 2017-04-10 16:12

    总结的很好,脚本部分可以给出运行结果,加油~~~