馬哥教育網絡班19期+第七周課程練習

1、創建一個10G分區,并格式為ext4文件系統;
   (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;

        mke2fs -b 2048 -m 2 -L 'MYDATA' -o defaults,acl

    
   (2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; 

        mount -L 'MYDATA' -o noexec,nodiratime -t ext4 /data/mydata  
        
2、創建一個大小為1G的swap分區,并創建好文件系統,并啟用之;

        mkswap /dev/sda4
        swapon /dev/sda4
        
3、寫一個腳本
   (1)、獲取并列出當前系統上的所有磁盤設備;
   (2)、顯示每個磁盤設備上每個分區相關的空間使用信息; 

        #!/bin/bash
        #
        i=1
        fdisk -l /dev/[s,h]d[a-z] | grep "Disk /"
        for DevName in $(ls /dev/[s,h]d[a-z][1-9]);do         
            if [ $i -eq 1 ] ;then
                df -h $DevName | awk -v OFS="    " '{print $1,$2,$3,$4,$5,$6}'
                let i++
            else
                df -h $DevName | grep -v "File" | awk -v OFS="    " -v name=$DevName '{print name,$2,$3,$4,$5,$6}'
            fi
        done

4、總結RAID的各個級別及其組合方式和性能的不同;
        RAID稱為磁盤冗余陣列,用來提高磁盤耐用性以及IO能力
        大致常用組合分為以下幾種:
        RAID 0 條帶卷     讀、寫性能提升            可用空間:N*min(S1,S2,…)        無冗余能力    最少磁盤數:2, 2+
        RAID 1 鏡像卷     讀性能提升、寫性能略下降    可用空間:1*min(S1,S2,…)        有冗余能力    最少磁盤數:2, 2+
        RAID 5             讀、寫性能提升            可用空間:(N-1)*min(S1,S2,…)    有冗余能力    最少磁盤數:3, 3+
        RAID-6:            讀、寫性能提升            可用空間:(N-2)*min(S1,S2,…)    有冗余能力    最少磁盤數:4, 4+
        RAID-10:        讀、寫性能提升            可用空間:N*min(S1,S2,…)/2    有冗余能力    最少磁盤數:4, 4+
        JBOD:            讀、寫性能無提升        可用空間:sum(S1,S2,…)        無冗余能力    最少磁盤數:1, 1+
        

5、創建一個大小為10G的RAID1,要求有一個空閑盤,而且CHUNK大小為128k;    

    準備3個10G大小 標志位為fd 的硬盤分區 /dev/sdb1 /dev/sdc1 /dev/sdd1
    mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 -c 128 /dev/sd{b,c,d}1
    
6、創建一個大小為4G的RAID5設備,chunk大小為256k,格式化ext4文件系統,要求可開機自動掛載至/backup目錄,而且不更新訪問時間戳,且支持acl功能;

    準備3個2G大小 標志位為fd 的硬盤分區 /dev/sdb2 /dev/sdc2 /dev/sdd2
    mdadm -C /dev/md1 -a yes -l 5 -c 256 -n 3 /dev/sd{b,c,d}2
    mke2fs -t ext4 /dev/md1
    echo "UUID=DeviceUUID /backup ext4 acl,nodiratime 0 0" >> /etc/fstab
    
7、寫一個腳本
   (1) 接受一個以上文件路徑作為參數;
   (2) 顯示每個文件擁有的行數;
   (3) 總結說明本次共為幾個文件統計了其行數;

    #!/bin/bash
    #
    declare -i fileNum=0
    echo
    for file in $* ;do
        if [ -f $file ];then
            echo $file: $(cat $file | wc -l)line
            let fileNum++
        else
            echo $file: No such file
        fi
    done
    echo -e "\n" "A total of $fileNum file"

8、寫一個腳本
   (1) 傳遞兩個以上字符串當作用戶名;
   (2) 創建這些用戶;且密碼同用戶名;
   (3) 總結說明共創建了幾個用戶;

    #!/bin/bash
    #
    declare -i userNum=0
    for userName in $* ;do
        if id $userName &>/dev/null ;then
            echo "$userName already exist!"
        elif useradd $userName &>/dev/null ;then
            echo $userName | passwd –stdin $userName &>/dev/null
            let userNum++
            echo "$userName creat!"
        else
            echo "$userName can't creat!"
        fi
    done
    echo "Creat $userNum users"

9、寫一個腳本,新建20個用戶,visitor1-visitor20;計算他們的ID之和;

    #!/bin/bash
    #
    declare -i idSum=0
    for ((i=1;i<21;i++));do
            if id visitor$i &>/dev/null ;then
                    let idSum+=$(cat /etc/passwd | grep ^visitor$i | cut -d: -f3)
            else
                    useradd visitor$i
                    let idSum+=$(cat /etc/passwd |tail -1 |cut -d: -f3)
            fi
    done

    echo "idSum: $idSum"

10、寫一腳本,分別統計/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#號開頭的行數之和,以及總的空白行數;

    #!/bin/bash
    #
    file1="/etc/fstab"
    file2="/etc/rc.d/rc.sysinit"
    file3="/etc/rc.d/init.d/functions"
    for file in {$file1,$file2,$file3};do
        echo -n "$file: " ;awk '/^#/{i++}END{print i,"Line"}' $file
    done
    echo -n "Space Line: " ; awk '/^$/{i++}END{print i,"Line"}' $file1 $file2 $file3

11、寫一個腳本,顯示當前系統上所有默認shell為bash的用戶的用戶名、UID以及此類所有用戶的UID之和;

    #!/bin/bash
    #
    awk -F: '/bash$/{printf "User:%-10s Uid:%i\n",$1,$3}' /etc/passwd
    awk -F: '/bash$/{idSum+=$3}END{print "IdSum: "idSum}' /etc/passwd

12、寫一個腳本,顯示當前系統上所有,擁有附加組的用戶的用戶名;并說明共有多少個此類用戶;

    #!/bin/bash
    #
    declare -a userName
    declare -i userNum
    userName=$(cat /etc/passwd | cut -d: -f1)
    for u in $userName ;do     
        id -G $u | awk -v name=$u '{if (NF>1) {print name}}'  
        n=$(id -G $u | wc -w )
        if [ $n -gt 1 ];then
        let userNum++
        fi
    done
    echo "User is $userNum"

13、創建一個由至少兩個物理卷組成的大小為20G的卷組;要求,PE大小為8M;而在卷組中創建一個大小為5G的邏輯卷mylv1,格式化為ext4文件系統,開機自動掛載至/users目錄,支持acl;

    用fdsik 創建2個總和為20G的物理分區 sdb1 sdc1 卷標為8e
    mkdir /users
    pvcreate /dev/sd{b,c}1
    vgcreate -s 8M vgtest /dev/sd{b,c}1
    lvcreate -L 5G -n mylv1
    mke2fs -t ext4 /dev/vgtest/mylv1
    echo "/dev/vgtest/mylv1       /users  ext4    defaults,acl    0       0" >> /etc/fstab
    init 6

14、新建用戶magedu;其家目錄為/users/magedu,而后su切換至此用戶,復制多個文件至家目錄;

    useradd -b /users magedu
    su – magedu
    cp /etc/m* ./
15、擴展mylv1至9G,確保擴展完成后原有數據完全可用;

    lvextend -L 9G /dev/vgtest/mylv1
    resize2fs /dev/vgtest/mylv1
    
16、縮減mylv1至7G,確??s減完成后原有數據完全可用;

    umount /users
    e2fsck -f /dev/vgtest/mylv1
    resize2fs /dev/vgtest/mylv1 7G
    lvreduce -L 7G /dev/vgtest/mylv1
    mount /dev/vgtest/mylv1 /users
    
    
17、對mylv1創建快照,并通過備份數據;要求保留原有的屬主屬組等信息;

    lvcreate -s -L 512M -n mylv-snap -p r /dev/vgtest/mylv1

原創文章,作者:N23_夕立時雨,如若轉載,請注明出處:http://www.www58058.com/18942

(0)
N23_夕立時雨N23_夕立時雨
上一篇 2016-06-20 22:26
下一篇 2016-06-21 18:29

相關推薦

  • 第二周作業

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。  cp復制,mv移動,rm刪除     1、cp:             1,用法:      &n…

    Linux干貨 2016-07-04
  • 2016-08-10作業

    1、編寫腳本/root/bin/systeminfo.sh, 顯示當前主機系統信息,包括主機名,IPv4 地址,操作系統版本,內核版本,CPU 型號,內存大小,硬盤大小。 #!/bin/bash echo "hostname is `hostname`" echo "IPv4 is `ifconfig | sed -n &#03…

    Linux干貨 2016-08-15
  • linux的tty

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://jeffyyko.blog.51cto.com/28563/140012 最近做了一個小測試,得到了以下結論 測試linux發行版本:rhel AS4.0 環境:VMware 5.0 目的:修改 vi /etc/initt…

    Linux干貨 2015-03-26
  • date用法心得

    Linux時間格式極大程度的遵循了人類習慣,以下為部分常見時間。
    date命令本身提供了日期的加減運算,shell編程時靈活運用

    2017-11-09
  • tomcat之-從AT到Cluster

    本文導航 一、    LAMT搭建以及部署應用        1、LAMT部署                   (1)、安裝Apache     …

    2017-02-13
  • linux中rpm命令的妙用

    linux中rpm命令的妙用 CentOS系統上使用rpm命令管理程序包: 安裝、卸載、升級、查詢、校驗、數據庫維護 安裝:         rpm {-i|–install} [install-options] PACKAGE_FILE…    …

    Linux干貨 2016-08-24

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-06-23 14:22

    寫的很棒,可以關注一些排版的技巧,那樣會更完美

欧美性久久久久