馬哥教育網絡班21期-第七周課程練習

1、創建一個10G分區,并格式為ext4文件系統;

    #fdisk /dev/sdb (n;p;1;+10G;w)
    #partx -a -n 1 /dev/sdb

 
   (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;

    #mke2fs -t ext4 -b 2048 -m 2 -L 'MYDATA' /dev/sdb1
    #tune2fs -o acl /dev/sdb1

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

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

2、創建一個大小為1G的swap分區,并創建好文件系統,并啟用之;

    #fdisk /dev/sdb  (n;p;2;+1G;t;2;82;w)
    #partx -a /dev/sdb
    #mkswap /dev/sdb2
    #swapon /dev/sdb2

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

#!/bin/bash
#
fdisk -l |grep "^/"|cut -d" " -f1
df -h

4、總結RAID的各個級別及其組合方式和性能的不同;
    RAID0(條帶卷)
        組合方式:將數據分成若干chunk,分散到每個硬盤中
        性能:讀、寫速度是RAID中最快的,無容錯能力

        可用空間:N*min(S1,S2,…)

    RAID1(鏡像卷)

        組合方式:將數據分成若干chunk,復制到每個硬盤中

        性能:讀性能提升、寫性能略下降,有冗余能力     

        可用空間:1*min(S1,S2,…)

    RAID4
        組合方式:3個硬盤中1個硬盤存儲校驗碼
        性能:有容錯能力

    RAID5
        組合方式:在RAID-4的基礎上,輪流用硬盤存儲校驗碼
        性能:讀、寫性能提升,有容錯能力
        可用空間: (N-1)*min(S1,S2,S3,…)

    RAID6

        組合方式:輪流用兩塊硬盤做校驗盤
        性能:讀、寫性能提升,有容錯能力(2塊磁盤)
        可用空間: (N-2)*min(S1,S2,S3,S4,…)

    RAID10

        組合方式:先兩兩一組進行RAID1,后用RAID0

        性能:讀、寫性能提升,每組鏡像最多只能壞一塊 

        可用空間: N*min(S1,S2,S3,S4…)/2

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

#fdisk /dev/sdb (n;e;3;+10;t;3;fd;w),依次創建sdb4,sdb5
#mdadm -C /dev/md1 -n2 -x1 -a yes -c128 -l1 /dev/sdb{3,4,5}

6、創建一個大小為4G的RAID5設備,chunk大小為256k,格式化ext4文件系統,要求可開機自動掛載至/backup目錄,而且不更新訪問時間戳,且支持acl功能;

    #fdisk /dev/sdb (n;e;6;+4G;t;6;fd;w),依次創建sdb7,sdb8
    #mdadm -C /dev/md2 -n3 -a yes -c256 -l5 /dev/sdb{6,7,8}
    #mke2fs -t ext4 /dev/md1

7、寫一個腳本
   (1) 接受一個以上文件路徑作為參數;
   (2) 顯示每個文件擁有的行數;
   (3) 總結說明本次共為幾個文件統計了其行數;

#!/bin/bash

declare -i i=0

if [ $# -lt 1 ];then
  echo "please input at least one file path"    
  exit 1
fi
for file in $*;do
  if [ -f $file ];then
    echo "The $file line number : $(wc -l $file|cut -d"" -f1)"
    let i++   
  else
    echo "please input the correct file path"
  fi
done
      
echo "the statisticsed file is $i"

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

#!/bin/bash

declare -i i=0

if [ $# lt 2 ];then 
    echo "at least input two usernames"
    exit 1
fi

for username in $*;do
    id $username &> /dev/null
    if [ $? -eq 0 ];then
        echo "$username existed"
    else
        useradd $username
        echo "$username" |passwd --stdin $username &>/dev/null
        let i++
    fi
done

echo "the user added is $i"

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

#!/bin/bash

declare -i sum=0

for i in `seq 1 20`;do 
    useradd visitor$i
    sum+=$(id -u visitor$i)
done

echo "the sum of all user's ID’ is :$sum"

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

#!/bin/bash

declare -i sum1=0
declare -i sum2=0

for i in {/etc/rc.d/rc.sysinit,/etc/rc.d/init.d/functions,/etc/fstab};do
    sum1+=$(grep -c '^#' $i)
    sum2+=$(grep -c '^$' $i)
done

echo "the sum of start by # is $sum1"
echo "the sum of space line is $sum2"

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

#!/bin/bash

declare -i sum=0
declare -i i=0

grep "\/bin\/bash$" /etc/passwd|awk -v FS=":" '{print $1,"\t",$3}'

for i in $(awk -F: '/bash$/{print $3}' /etc/passwd);do 
    let sum+=$i
done

echo "the sum of uid is $sum"

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

#!/bin/bash 

declare -i i=0

for user in `cut -d: -f1 /etc/passwd`;do 
    group=$(id $user|cut -d" " -f3|awk -F, '{print $2}')
    if [ -n "$group" ];then
        echo $user
        let i++
    fi
done
echo "user number is $i"

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

    #fdisk /dev/sdb {n;e;9;+10G;t;9;8e;w},依次創建sdb10
    #pvcreat /dev/sdb9
    #pvcreat /dev/sdb10
    #vgcreat myvg -s 8M  /dev/sdb{9,10}
    #lvcreat -L 5G -n mylv1 myvg
    #mk2fs -t ext4 /dev/myvg/mvlv1

在/etc/fstab里新增一行

/dev/myvg/mglv1    /users        ext4        default,acl            0  0

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

    #useradd -d /users/magedu magedu
    #su - magedu
    #cp /etc/ .

15、擴展mylv1至9G,確保擴展完成后原有數據完全可用;

    #umount /dev/myvg/mylv1
    #lvextend -L 9G /dev/myvg/mylv1
    #resize2fs /dev/myvg/mvlv1
    #mount /dev/myvg/mylv1 /users

16、縮減mylv1至7G,確??s減完成后原有數據完全可用;

    #umount /dev/myvg/mvlv1
    #e2fsck -f /dev/myvg/mvlv1
    #resize2fs /dev/myvg/mvlv1
    #lvreduce -L 7G /dev/myvg/mvlv1
    #mount /dev/myvg/mvlv1 /users/

17、對mylv1創建快照,并通過備份數據;要求保留原有的屬主屬組等信息;

    #lvcreat -L 5G -p r -s -n mylv1.snapshot /dev/myvg/mvlv1

原創文章,作者:π,如若轉載,請注明出處:http://www.www58058.com/37863

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

相關推薦

  • 初學Linux之用戶、組和權限

    1、用戶和組管理命令 ?
    2、理解文件權限和默認權限 ?
    3、設置文件權限
    4、特殊權限 ?
    5、ACL

    2017-12-08
  • N25-第三周作業

      列出當前系統上所有已經登陸的用戶的用戶名,注意:同一個用戶登陸多次,則只顯示一次即可。     2.取出最后登陸到當前系統的用戶的相關信息。     3.取出當前系統上被用戶當作其默認shell的最多的那個shell.     4.將/etc/password中的第三個字段數值最大的后…

    Linux干貨 2016-12-19
  • Linux中的文本處理工具

    本章內容:   一、各種文本工具來查看、分析,統計文本文件   二、grep   三、正則表達式   四、擴展正則表達式   五、Sed 具體內容如下: 一、抽取文本的工具:      文件內容:less和cat      文件截?。篽ead和tai…

    Linux干貨 2016-08-08
  • 程序包管理:rpm和yum

    rpm命令                              軟件包管理 程序包管理 一、概述 (一)API:Application Program Interface  應用編程接口 ABI…

    Linux干貨 2016-08-21
  • 第一天參與馬哥linux運維面授

    很高興認識大家,介紹一下,我叫袁亞瓊,來自美麗的云南。我是一個隨和而又不隨性95年女子,喜歡運動,擅長田徑。學食品檢測的,上學期間沒怎么接觸計算機,現在又來學專業計算機,內心還是有幾絲恐慌,希望在今后的學習路上得到各位學友和老師的指導和幫助。等工作穩定,可以去云南放松一下,云南是個吃喝玩樂的好地方,同時也是個感受慢節奏生活的佳地。云南歡迎您哦! 選擇學習li…

    Linux干貨 2018-03-26
  • shell編程及小命令

    1. ping 10.1.252.25d2 -c1 -w1 &> /dev/null && echo "The host is up" || echo "The host is down" 2. 在vim命令中, p或則P可以實現復制。     p: 復制到下一行 &n…

    Linux干貨 2016-08-12

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-22 14:50

    寫的很好,文字的排版還可以在漂亮一點,加油

欧美性久久久久