zoukankan      html  css  js  c++  java
  • Linux基础练习题(五)

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

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

    [root@bj-1-142 ~]# mke2fs -t ext4 -m3 -L MYDATA -b 2048 /dev/sdb1
    # 配置默认挂在属性启用acl
    [root@bj-1-142 ~]# tune2fs -o acl /dev/sdb1
    

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

    [root@bj-1-142 ~]# mount -o noatime,noexec /dev/sdb1 /data/mydata/
    

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

    [root@bj-1-142 ~]# 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): p
    分区号 (2-4,默认 2):2
    起始 扇区 (20973568-167772159,默认为 20973568):
    将使用默认值 20973568
    Last 扇区, +扇区 or +size{K,M,G} (20973568-167772159,默认为 167772159):+1G
    分区 2 已设置为 Linux 类型,大小设为 1 GiB
    
    命令(输入 m 获取帮助):t
    分区号 (1,2,默认 2):2
    Hex 代码(输入 L 列出所有代码):82
    已将分区“Linux”的类型更改为“Linux swap / Solaris”
    
    # 格式化swap分区并启用之
    [root@bj-1-142 ~]# swapon /dev/sdb2
    [root@bj-1-142 ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:            977         244         139          11         593         560
    Swap:          3072           0        3072
    

    3、写一个脚本

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

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

    [root@bj-1-142 ~]# cat disk.sh
    #!/bin/bash
    # Filename: disk.sh
    # Author: enzhi.wang
    # Date: 2017-02-15
    # chkconfig:
    # discription:
    
    # print current system all disks
    echo "print disk list."
    fdisk -l | grep -o  "/dev/sd[a-z]"| uniq
    
    # print all disk partition
    echo "file system disk space usage"
    df -h |grep "/dev/sd[a-z]"
    

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

    RAID0特性:

    ​ 1、读写性能提升;

    ​ 2、可用空间,N*min

    ​ 3、无容错能力;

    ​ 4、最小磁盘数2,2+

    RAID1特性:

    ​ 1、读性能提升,写性能略有下降,同一份数据要存两份;

    ​ 2、可用空间,1*min,磁盘总空间的一半;

    ​ 3、有冗余能力;

    ​ 4、最少磁盘数,2,2+;

    RAID5特性:

    ​ 1、读写性能提升;

    ​ 2、可用空间,N-1*min;

    ​ 3、有冗余能力;

    ​ 4、最少磁盘数,3,3+;

    RAID10特性:

    ​ 1、读写性能提升;

    ​ 2、可用空间,N*min/2;

    ​ 3、有冗余能力,每组镜像最多只能坏一块;

    ​ 4、最少磁盘数,4,4+;

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

    [root@bj-1-160-enzhi ~]# mdadm -C /dev/md0 -a yes -l 1 -c 128 -n 2 /dev/sd[b,c]1
    mdadm: Note: this array has metadata at the start and
        may not be suitable as a boot device.  If you plan to
        store '/boot' on this device please ensure that
        your boot-loader understands md/v1.x metadata, or use
        --metadata=0.90
    Continue creating array? y
    mdadm: Defaulting to version 1.2 metadata
    mdadm: array /dev/md0 started.
    

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

    [root@bj-1-160-enzhi ~]# mdadm -C /dev/md0 -c 256 -l 5 -n 3 /dev/sd[b,c,d]1
    mdadm: Defaulting to version 1.2 metadata
    mdadm: array /dev/md0 started.
    [root@bj-1-160-enzhi ~]# mdadm -D /dev/md0
    /dev/md0:
            Version : 1.2
      Creation Time : Wed Feb 15 21:11:09 2017
         Raid Level : raid5
         Array Size : 4204544 (4.01 GiB 4.31 GB)
      Used Dev Size : 2102272 (2.00 GiB 2.15 GB)
       Raid Devices : 3
      Total Devices : 3
        Persistence : Superblock is persistent
    
        Update Time : Wed Feb 15 21:11:20 2017
              State : clean
     Active Devices : 3
    Working Devices : 3
     Failed Devices : 0
      Spare Devices : 0
    
             Layout : left-symmetric
         Chunk Size : 256K
    
               Name : bj-1-160-enzhi.com:0  (local to host bj-1-160-enzhi.com)
               UUID : 93d0b6f4:43f15ed3:8d289e89:bd0dea44
             Events : 18
    
        Number   Major   Minor   RaidDevice State
           0       8       17        0      active sync   /dev/sdb1
           1       8       33        1      active sync   /dev/sdc1
           3       8       49        2      active sync   /dev/sdd1
    [root@bj-1-160-enzhi ~]# mkfs.ext4 /dev/md0
    [root@bj-1-160-enzhi ~]# mkdir /backup
    [root@bj-1-160-enzhi ~]# vim /etc/fstab
    /dev/md0                /backup                 ext4    defaults,noatime,acl    0 0
    [root@bj-1-160-enzhi ~]# mount -a
    [root@bj-1-160-enzhi ~]# mount |grep "/dev/md0"
    /dev/md0 on /backup type ext4 (rw,noatime,acl)
    

    7、写一个脚本

    ​ (1) 接受一个以上文件路径作为参数;

    ​ (2) 显示每个文件拥有的行数;

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

    #!/bin/bash
    # -*- coding: utf-8 -*-
    # Filename:    files.sh
    # Author: enzhi.wang
    # Date: 2017-02-15
    # Description:
    
    if [ $# -lt 1 ];then
        echo "Usage: $0 /path/to/somefile ..."
        exit 2
    fi
    
    count=0
    # 如果参数为目录文件则提示用户不是文件
    for f in $*;do
        if [ -d $f ];then
            echo "error $f is a directory."
               exit 4
        else
            lines=$(wc -l $f|awk '{print $1}')
            echo "$f line sum = $lines"
            let count++
        fi
    done
    echo "本次共为$count个文件统计了行数."
    

    8、写一个脚本

    ​ (1) 传递两个以上字符串当作用户名;

    ​ (2) 创建这些用户;且密码同用户名;

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

    #!/bin/bash
    # -*- coding: utf-8 -*-
    # Filename:    adduser1.sh
    # Author: enzhi.wang
    # Date: 2017-02-15
    # Description:
    
    if [ $# -lt 1 ];then
        echo "Usage: $0 username1 username2 ..."
        exit 2
    fi
    
    count=0
    for u in $*;do
        if id $u &>/dev/null;then
            echo "error user $u is exists."
        else
            useradd $u
            echo "$u"|passwd --stdin $u &>/dev/null
            echo "useradd $u is finished."
            let count++
        fi
    done
    echo "create $count users."
    

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

    #!/bin/bash
    # -*- coding: utf-8 -*-
    # Filename:    adduser2.sh
    # Author: enzhi.wang
    # Date: 2017-02-15
    # Description:
    uid_sum=0
    for i in {1..20};do
        useradd visitor$i
        uid=$(id -u visitor$i)
        uid_sum=$[$uid_sum + $uid]
    done
    echo "UID sum $uid_sum"
    
  • 相关阅读:
    表单控件和属性
    html5语义化标签
    移动布局
    webpack
    OMobile
    Npm的下载 安装 管理工具
    模块化开发
    百度地图
    离线缓存
    canvas和svg
  • 原文地址:https://www.cnblogs.com/wangenzhi/p/6403568.html
Copyright © 2011-2022 走看看