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

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

    fdisk /dev/sdb    n p 1 +10G w

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

    mke2fs -b 1024 -L MYDATA /dev/sdb1 -t ext4
 
    tune2fs -o acl /dev/sdb1

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

    mount -o noatime,noexec  /dev/sdb1 /data/mydata

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

    fdisk /dev/sdb n l +G t 5 82 w 
    partx -a /dev/sdb5
 
    mkswap /dev/sdb5
    swapon /dev/sdb5

3、写一个脚本
(1)、获取并列出当前系统上的所有磁盘设备;
(2)、显示每个磁盘设备上每个分区相关的空间使用信息;

   #!/bin/bash
    #
    select a in 'All Disk' 'Disk Use';    do
    case $a in
    'All Disk')
            fdisk -l
    ;;    
    'Disk Use')
            df -Th
    ;;
    *)            exit
    ;;    esac
    done

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

    raid0  最少两块磁盘,数据切割成等量大小存放在每个磁盘上。 读、写性能提升但无容错能力。
    raid1  最少两块磁盘,数据同时存储在每个磁盘上。写性能略有下降,读性能提升,有容错能力。
    raid5  最少三块磁盘,数据切割存储到每个磁盘,每个磁盘上会有同位检查码,允许有个磁盘损坏。读、写性能提升,有容错能力(最多坏一块磁盘)。
    raid10 最少四块磁盘,先让两块磁盘组成 RAID 1,共有两组,将两组 RAID 1 再组成一组 RAID 0。读、写性能提升,有容错能力(每一组可坏一块盘)

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

    创建磁盘分区/dev/sdb{6,7,8}
    创建raid   mdadm -C /dev/md0 -a yes -l 1 -c 128 -n 2  -x 1 /dev/sdb{6,7,8}

6、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;

mdadm -C /dev/md5 -a yes -n 5 -l 5 -c 256 /dev/sdb{6,7,8,9,10}
 
    vim /etc/fstab
 
    mount –a

7、写一个脚本
(1) 接受一个以上文件路径作为参数;
(2) 显示每个文件拥有的行数;
(3) 总结说明本次共为几个文件统计了其行数;

    #!/bin/bash
    #
    sum=0
    [ $# -eq 0 ] && echo "Usage:$0 dirpath" && exit
    for i in $@ ;do
        if [ ! -d $i ] ;then
            echo "$i is not a dirpath"
            exit
        else
        cd $i
    
            for j in `ls $i`; do
                if [ -f $j ];then
                    echo $j > /tmp/tj.txt
                    wc -l $j
                    let sum=$sum+1
                fi
            done
            echo "There $sum files are counted rownumber "
        fi
    done

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

    #!/bin/bash
    #
    [ $# -eq 0 ] && echo "Usage:$0 string" && exit
    [ $# -lt 2 ] && echo "Args must greater then 2" && exit
    declare -i a=0
    for i in $@ ;do
            id $i >> /dev/null 2>&1
            if [ $? -eq 0 ];then
                echo "$i is already exit"
            else    
                useradd $i
                sleep 3
                echo "$i" | passwd --stdin $i >> /dev/nul 2>&1
                let a++            fi      
    done
    echo "$a users added"

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

    #!/bin/bash
    #
    sum=0
    for i in {1..20};do
    id visitor$i >> /dev/null 2>&1
    if [ $? -eq 0 ];then
        echo "visitor$i is already exit"
    else
        useradd visitor$i
        echo "visitor$i" | passwd --stdin visitor$i >> /dev/nul 2>&1
    fi
    tail -1 /etc/passwd    let sum+=`tail -1 /etc/passwd | awk -F: '{print $3}'`    done
    echo "the id sum is $sum"

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

    #!/bin/bash
    #
    ##'#'start
    dirpath='/etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions  /etc/fstab'
    ssum=`grep '^#' $dirpath |wc -l`    echo "#start row number is $ssum"
    ##'blank'
    bsum=`grep '^$' $dirpath |wc -l`    echo "blank row number is $bsum"

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

    #!/bin/bash
    #    sum=0
    grep '/bin/bash$' /etc/passwd | awk -F: 'BEGIN{printf "%-10s,%s\n","USER","UID"}{printf "%-10s,%s\n",$1,$3}'
    ss=`awk -F: '{print $3}' /etc/passwd`    for i in $ss;do
    let sum+=$i
    done
    echo "the uid sum is $sum"

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

    #!/bin/bash
    #
    #declare -a bb
    bb=`awk -F: '{ if( $NF != NULL )  printf "%-15s%s\n",$1,$NF}' /etc/group | awk '{print $1}'`
    ss=`awk -F: '{ if( $NF != NULL )  printf "%-15s%s\n",$1,$NF}' /etc/group | awk '{print $1}'| wc -l`
    echo "user name is :"
    for i in $bb;do
    echo -n "  $i"
    done
    echo ""
    echo "user number is: $ss"

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

pvcreate /dev/sdc{1,2}
vgcreate -s 8M myvg /dev/sdc{1,2}
lvcreate -L 5G -n mylv1 myvg
mkfs.ext4 /dev/myvg/mylv1
mkdir /users 
vim /etc/fstab
 
mount  –a

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

    #!/bin/bash
    if [ $UID -eq 0 ] ;then
    
    [ -d /users/magedu ] || mkdir -p /users/magedu
    
        id magedu >> /dev/null    
            if [ $? -eq 0 ];then
                    echo "user is exist"
                    userdel -r magedu                    exit
            else
                    useradd  -d /users/magedu magedu
                    sleep 3
                    chown -R magedu:magedu /users/magedu
                    chmod -R 700 /users/magedu            fi
    else
        echo "user is not root "
        exit
    fi
    sleep 3
    echo "now su to magedu"
    su -  magedu <<EOF
    cp /etc/skel/.* ~/
    EOF    exit
    echo "copy is done"

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

    lvresize -L +4G /dev/myvg/mylv1
    resize2fs /dev/myvg/mylv1

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

    umount  /dev/myvg/mylv1
    e2fsck /dev/myvg/mylv1
    resize2fs -f /dev/myvg/mylv1 7G
    lvreduce -L 7G /dev/myvg/mylv1

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

lvcreate -L 1G -s -n myss /dev/myvg/mylv1
创建快照挂载目录
mkdir /snap
挂载快照
mount  /dev/myvg/myss /snap
备份
tar –zcvpf /tmp/backup.tar.gz /snap/*

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

(0)
hhaa0352hhaa0352
上一篇 2016-08-22 09:30
下一篇 2016-08-22 09:30

相关推荐

  • 马哥教育网络班21期+第5周作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行(以/boot/grub2/grub.cfg代替); [root@localhost ~]# grep '^[[:space:]]\+' /boot/grub2/grub.cfg    load_e…

    Linux干货 2016-08-08
  • yum函数介绍以及自建yum仓库

    一、前言     在之前介绍了yum的配置(详细请移步 http://www.178linux.com/archives/6445)。但是有没有发现一个问题,虽然我们已将仓库指向一个可用的仓库服务器,但是随着Linux的不断升级和改版,我们是否还需要不断的去修改仓库的配置文件,如果只有一台还好,那如果我们有多…

    Linux干货 2015-07-24
  • 软raid实现raid5

    现在Linux系统有磁盘情况如下 现在从sda,sdb,sdc,sdd 分区取出10G 的空间做raid5. 第一步:建立分区 现在执行fdisk  /dev/sd* 命令分区冲这四个磁盘划分10G分区 分别是sda6,sdb1,sdc1,sdd1。 具体操作如下: 分区完之后,执行#partx -a /dev/sd*  让分区生效。具体效果如下: 分区完成…

    2017-12-06
  • python-多进程

    进程是由系统自己管理的。 1:最基本的写法 from multiprocessing import Pool def f(x):     return x*x if __name__ == '__main__': &nb…

    Linux干货 2016-11-05
  • N22-第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 ~]# who | cut -d' ' -f1| uniq -u  执行前的情况:  执行后的情况:    &nbsp…

    Linux干货 2016-09-06
  • 0805课堂练习与作业

    练习1 1、找出ifconfig命令结果中本机的所有IPv4地址 2、查出分区空间使用率的最大百分比值 3、查出用户UID最大值的用户名、UID及shell类型 4、查出/tmp的权限,以数字方式显示 5、统计当前连接本机的每个远程主机IP的连接数,并按从大 到小排序 练习2 1、显示/proc/meminfo文件中以大小s开头的行;(要求:使 用两种方式)…

    Linux干货 2016-08-07

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-22 14:49

    写的很好,排版也很棒,加油