馬哥教育網絡班20期-第七周課程作業

Table of Contents

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

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

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

# 利用fdisk創建一個10G分區,分區id為83,假設為/dev/sda2
mke2fs -t ext4 -b 2048 -m 2 -L 'MYDATA' /dev/sda2

mount -o default,acl,noexec,noatime /dev/sda2 /data/mysata

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

# 利用fdisk創建一個1G分區,分區id為83,假設為/dev/sda2
mkswap /dev/sda2
swapon /dev/sda2

3、寫一個腳本

  1. 獲取并列出當前系統上的所有磁盤設備;

    fdisk -l | grep -o '^/[^[:space:]]\+'
  2. 顯示每個磁盤設備上每個分區相關的空間使用信息;

    df -h

4、總結RAID的各個級別及其組合方式和性能的不同;

  • RAID-0

    • 將數據分成若干chunk,分散到每個硬盤中

    • 讀、寫性能提升

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

    • 無容錯能力

  • RAID-1

    • 將數據分成若干chunk,復制到每個硬盤中

    • 讀性能提升、寫性能略下降

    • 1*min(S1,S2,…)

    • 有冗余能力

  • RAID-4

    • 3個硬盤中1個硬盤存儲校驗碼

    • 有容錯能力: 1塊磁盤

  • RAID-5

    • 在RAID-4的基礎上,輪流用硬盤存儲校驗碼

    • 讀、寫性能提升

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

    • 有容錯能力: 1塊磁盤

    • 最少使用3塊磁盤

  • RAID-6

    • 輪流用兩塊硬盤做校驗盤

    • 讀、寫性能提升

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

    • 有容錯能力: 2塊磁盤

    • 最少使用4塊磁盤

  • RAID-10

    • 先兩兩一組進行RAID-1,后用RAID-0

    • 讀、寫性能提升

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

    • 有容錯能力: 每組鏡像最多只能壞一塊

    • 最少磁盤數: 4, 4+

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

# 利用fdisk創建三個10G分區,分區id為fd,假設為/dev/sda3、/dev/sda4、/dev/sda5
mdadm -C /dev/md1 -n 3 -l 1 -x 1 -a yes -c 128 /dev/sda{3,4,5}

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

  1. 創建一個RAID5設備,并格式化為ext4文件系統

    # 利用fdisk創建三個4G分區,分區id為fd,假設為/dev/sda3、/dev/sda4、/dev/sda5
    mdadm -C /dev/md1 -n 3 -l 5 -a yes -c 256 /dev/sda{3,4,5}
    mke2fs -t ext4 /dev/md1
  2. 編輯fstab文件

    # 在/etc/fstab文件中加入以下一行
    /dev/md1 /backup ext4 defaults,noatime,acl 0 0
  3. 掛載設備

    mount -a

7、寫一個腳本

  1. 接受一個以上文件路徑作為參數;

  2. 顯示每個文件擁有的行數;

  3. 總結說明本次共為幾個文件統計了其行數;

#!/bin/bash
#
ARG_WRONG=87

if [ $# -lt 1 ]; then
    echo "$0 PATH [PATH...]"
    exit $ARG_WRONG
fi

for i in `seq $#`; do
    echo -n "$i: "
    if [ -e ${$i} ]; then
        echo `wc -l ${$i}`
        let "NUM++"
    else
        echo "File not exist"
    fi
done

echo "Number of file: $NUM"

8、寫一個腳本

  1. 傳遞兩個以上字符串當作用戶名;

  2. 創建這些用戶;且密碼同用戶名;

  3. 總結說明共創建了幾個用戶;

#!/bin/bash
#
ARG_WRONG=87

if [ $# -lt 2 ]; then
    echo "$0 User_name User_name [User_name...]"
    exit $ARG_WRONG
fi

for i in `seq $#`; do
    useradd ${$i}
    echo ${$i} | passwd --stdin ${$i}
    let "NUM++"
done

echo "Number of user: $NUM"

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

#!/bin/bash
#
for i in `seq 20`; do
    useradd "visitor$i"
    let "SUM+=`id -u visitor$i`"
done
echo "Sum of ID: $SUM"

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

#!/bin/bash
#

for path in /etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/fstab; do
    let "NUM1+=`grep -c '^#' $path`"
    let "NUM2+=`grep -c '^[[:space:]]*$' $path`"
done

echo "Number of #: $NUM1"
echo "Number of empty: $NUM2"

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

#!/bin/bash
#
grep "\<bash\>$" /etc/passwd | cut -d':' -f1,3

for i in `grep "\<bash\>$" /etc/passwd | cut -d':' -f3`; do
    let "NUM+=i"
done

echo "Sum of UID: $NUM"

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

#!/bin/bash
#
for i in `grep '[^:]$' /etc/group | cut -d':' -f1`; do
    echo $i
    let "NUM++"
done

echo "Number of user: $NUM"

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

# 使用fdisk兩個10G的分區,分區id為8e,假設為/dev/sda3、/dev/sda4
pvcreate /dev/sda3
pvcreate /dev/sda4

vgcreate -s 8M mylv /dev/sda3 /dev/sda4

lvcreate -L 5G -n mylv1 mylv
mke2fs -t ext4 /dev/mylv/mylv1

# 在/etc/fstab文件中加入以下一行
/dev/mylv/mylv1 /users ext4 defaults,acl 0 0

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

useradd -d /users/magedu magedu
su - magedu
cp FILE ~/

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

umount /dev/mylv/mylv1
lvextend -L 9G /dev/mylv/mylv1
resize2fs /dev/mylv/mylv1

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

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

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

lvcreate -L 5G -p r -s -n mylv1_snapshot /dev/mylv/mylv1

原創文章,作者:Net20_木皮,如若轉載,請注明出處:http://www.www58058.com/28456

(0)
Net20_木皮Net20_木皮
上一篇 2016-08-05
下一篇 2016-08-05

相關推薦

  • Linux簡單命令

    cal 日歷 bc? 計算器 ? ? obase=2 輸出為二進制?????? ibase=2輸入為二進制????? \onnn八進制????? \xHH十六進制 $()識別命令和變量,同反向單引號 , 可在命令調用另一個命令的執行結果時用 字體顏色:紅色-打包文件(壓縮包),綠色-可執行,淺藍-軟連接,藍色-目錄 echo $SHELL查看當前shell …

    Linux干貨 2018-03-18
  • C語言結構體里的成員數組和指針

    單看這文章的標題,你可能會覺得好像沒什么意思。你先別下這個結論,相信這篇文章會對你理解C語言有幫助。這篇文章產生的背景是在微博上,看到@Laruence同學出了一個關于C語言的題,微博鏈接。微博截圖如下。我覺得好多人對這段代碼的理解還不夠深入,所以寫下了這篇文章。 為了方便你把代碼copy過去編譯和調試,我把代碼列在下面: final void&n…

    Linux干貨 2016-05-29
  • Linux基礎學習總結(三)

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次: [leexide@leeblog ~]$who | cut -d" " -f1 | uniq 2、取出最后登錄到當前系統的用戶的相關信息。 last -n&nbs…

    Linux干貨 2016-10-03
  • 馬哥網絡教育班第21期+第二周課程練習

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 cp,mv,rm,cd,pwd,ls,mkdir,rmdir,tree (1)復制命令:cp 格式:   cp [OPTION]… [-T] SOURCE DEST cp [OPTION]… S…

    2016-07-04
  • 第15天:腳本關鍵字,函數

    http://note.youdao.com/noteshare?id=2ea9bcdf745a47bf65f0cef6e706ccaf

    Linux干貨 2016-09-06
  • chmod 大寫X

    大寫執行權限X,加了怎么不顯示呢

    2018-04-09

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-05 17:06

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

欧美性久久久久