馬哥教育網絡班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
下一篇 2016-06-21

相關推薦

  • Linux第七周小結

    1、創建一個10G分區,并格式為ext4文件系統 a) 要求其block大小為2048,預留空間百分比為2,卷標為MYDATA,默認掛載屬性包含acl; b) 掛載至/data/madata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; 2、創建一個大小為1G的swap分區,并創建好文件系統,并啟用之 3、寫一個腳本 a)&…

    2017-08-13
  • 進程管理

    Process Manager 工作管理  jobs ctrl+z,& bg,fg nohup 進程,資源管理  查看:pstree,ps,top,vmstat,pmap 查詢:pgrep,pidof,fuser,lsof 管理:kill,nice,renice 管理軟件or命令  htop glances dstat …

    Linux干貨 2016-04-11
  • 使用fail2ban防止暴力破解ssh及vsftpd密碼

    此文介紹一個linux下通過監控日志防止密碼被暴力破解的軟件-fail2ban。fail2ban支持常用的服務,如sshd, apache, qmail, proftpd, sasl, asterisk等的密碼驗證保護,當發現暴力破解的跡像時,可以通過iptables, tcp-wrapper, shorewall等方式阻止此IP的訪問。 python安裝 …

    Linux干貨 2015-03-04
  • 數據庫的備份和恢復

    數據庫的備份和恢復 一 (理論篇)、數據庫備份與恢復基礎 1、數據庫的備份與恢復 備份:存儲的數據副本; 原始數據:持續改變; 恢復:把副本應用到線上系統; 僅能恢復至備份操作時刻的數據狀態; 時間點恢復: binary logs; 2、為什么備份? 災難恢復: 硬件故障(冗余)、軟件故障(bug)、自然災害、黑客攻擊、誤操作、…&nb…

    2016-11-22
  • python裝飾器詳解

    python之裝飾器詳解 一、裝飾器定義 定義一個函數,可以接受一個函數作為參數,對該函數進行一些包裝,不改變函數的本身。 二、裝飾器四部曲(分解) 1、函數可賦值給變量。若賦值給變量的是調用后的函數,變量的值就是return的返回值。 切記:函數賦值給變量,只看return的值。分清楚函數是處于調用狀態還是未被調用狀態。若函數沒有寫return,默認ret…

    2017-02-08
  • Linux的文件查找之find的使用

    文件查找   本章節內容:   使用locate命令   使用find命令   使用Gnome搜索工具    一、文件的查找(find和locate的對比): 文件查找:是在文件系統上查找符合條件的文件。 locate find 查找時效性 非實時查找 實時查找 文件索引數據庫 需要依賴查詢系統上預…

    Linux干貨 2016-08-15

評論列表(1條)

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

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

欧美性久久久久