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

相關推薦

  • 第八周

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 網橋(Bridge)是早期的兩端口二層網絡設備,用來連接不同網段。網橋的兩個端口分別有一條獨立的交換信道,不是共享一條背板總線,可隔離沖突域。網橋比集線器(Hub)性能更好,集線器上各端口都是共享同一條背板總線的。后來,網橋被具有更多端口、同時也可隔離沖突域的交換機(Switch…

    Linux干貨 2016-09-19
  • 正則表達式應用

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。    cp -a /etc/skel /home/tuser1    chmod g-x /home/tuser1…

    Linux干貨 2016-12-24
  • RHCE基礎實驗

    實驗:配額實現 1. 啟用配額功能 vim /etc/fstab defaults usrquota,grpquota mount -o remount /home 2. 創建配額數據庫 quotacheck -cug /home 3. 啟用數據庫 quotaon /home quotaon -p /home 查看 4. edquota wang setqu…

    Linux干貨 2017-05-02
  • shell編程之循環及函數

    for 循環 for 變量名 in 列表;do    循環體 done   執行機制: 依次將列表中的元素賦值給“變量名”; 每次賦值后即執行一次循環體; 直到列表中 的元素耗盡,循環結束   列表生成方式: (1)直接給出列表 (2)整數列表: (a) {start..end} (b) $(seq [start [s…

    Linux干貨 2016-08-24
  • Linux系統下的翻譯神器——Goldendict

    Linux系統下的翻譯神器——Goldendict 學習Linux時明顯感受到學習英文的重要性。絕大多數Linux的發行版英文版的功能要遠強于中文。因此一款好的翻譯軟件是了解熟悉Linux系統的必需品。在Windows系統下有各種好用的詞典程序,包括有道詞典、bing詞典、金山詞霸等等,而這些軟件都不能在linux下使用,即使能夠使用也只是測試版,功能太少?!?/p>

    Linux干貨 2017-04-24
  • bash腳本之進階

    bash腳本 1、終端打印 1、單雙引號(echo) 雙引號: ①在雙引號里面打不出! ②雙引號,可以在文本中使用“;”,“;”在bash中被用作命令定界符。 單引號: 變量替換在單引號中無效。 2、printf:不會自動添加換行符,要手動添加 如下: 結果: 3、補充: echo 要使用轉義系列需要加e,!號除外 2、變量和環境變量 腳本語言通?!?/p>

    Linux干貨 2016-11-28

評論列表(1條)

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

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

欧美性久久久久