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

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

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

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

  fdisk /dev/sdb

03c041c0-46e0-441a-8f0c-ce096bb39f6f.jpg

   partx -a /dev/sdb1

   mkfs.ext4 -b 2048 -m 2 -L "MYDATA" /dev/sdb1

   vim /etc/fstab

/dev/sdb1               /data/mydata                  ext4    rw,suid,dev,noexec,auto,nouser,async,noatime    0 0

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

   fdisk /dev/sdb

 83d53d1f-d26a-4cbf-934f-01294a491264.jpg

  partx -a /dev/sdb2

  mkswap -L "myswap" /dev/sdb2

  swapon /dev/sdb2

3.寫一個腳本

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

  (2)顯示每個磁盤設備上每個分區相關的空間使用信息;

#!/bin/bash

#

echo "all disk as follows :"

fdisk -l |egrep '^Disk[[:space:]]+/dev/' |awk '{print $2}' |awk -F: '{print $1}'

echo "————————"

echo "partions space has used:"

for disk in $(fdisk -l |egrep '^Disk[[:space:]]+/dev/' |awk '{print $2}' |awk -F: '{print $1}');do

        for part in $(fdisk -l $disk |grep '^/dev/'|awk '{print $1}');do

                echo "$part partion used:$(df -h $part| awk '/\/dev\//{print $5}')"

        done

done

4.總結RAID的各個級別機器組合方式和性能的不同:

raid0:條帶卷;至少2塊盤,讀、寫性能提升,無冗錯能力,空間:N*min(S1,S2,…)

raid1:鏡像卷;至少2塊盤,讀性能提升、寫性能下降,有冗錯能力,空間:1*min(S1,S2,…)

raid4:奇偶校驗的獨立磁盤結構;存儲校驗碼的硬盤是單獨的盤,其余和raid5基本類似

raid5:分布式奇偶校驗的獨立磁盤結構;至少3塊盤,讀、寫性能提升,有冗余能力,空間:(N-1)*min(S1,S2,…)

raid6:兩種存儲的奇偶校驗碼的磁盤結構;至少4塊盤,讀寫性能提升,有容錯能力,空間:(N-2)*min(S1,S2,…)

raid10:先做raid1,再做raid0;讀寫性能提升,至少4塊盤,有容錯能力,空間:N*min(S1,S2,…)/2

JBOD:將多塊磁盤的空間合并一個大的連續空間使用,空間:sum(S1,S2,…)

5.創建一個大小為10G的raid1,要求有一個空閑盤,而且chunk大小為128K;

 mdadm -C /dev/md0 -n 2 -x 1 -c 128 -l 1 /dev/sdb3 /dev/sdc1 /dev/sdc2

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

mdadm -C /dev/md0 -n 3 -l 5 -c 256 /dev/sdb3 /dev/sdc1 /dev/sdc2 

mkfs.ext4 /dev/md0 

vim /etc/fstab

    /dev/md/localhost.localdomain:0   /backup  ext4    rw,acl,noatime  0 0

7.寫一個腳本:

  (1)接受一個以上文件路徑作為參數

  (2)顯示每個文件擁有的行數

  (3)總結說明本次公文幾個文件統計了其行數

#!/bin/bash

#

read  -p  "please input the file path:" -a line

echo "================================="

if [ ${#line[@]} -lt 1 ];then

   echo "please input file path like:/path/to/file"

else

   for i in $(seq 0 $[${#line[*]}-1]);do

      if [ -f ${line[$i]} ];then

         echo "${line[$i]} lines is:$(cat ${line[$i]} |wc -l)"

      else

        echo "please input a file path like:/etc/path/to/file"

        exit 1

      fi

   done

echo "file number:${#line[@]}"

fi

8.寫一個腳本:

  (1)傳遞兩個以上的字符串當做用戶名

  (2)創建這些用戶名,且密碼同用戶名

  (3)總結說明共創建了幾個用戶

#!/bin/bash

#

declare -i sum=0

read -p "please more than one strings:" -a user

if [ ${#user[@]} -lt 1 ];then

   echo "please input strings like:string1 string1 …"

   exit 1

else

   for i in $( seq 0 $[${#user[*]}-1]);do

       if id ${user[$i]} &>/dev/null ;then

          echo "${user[$i]} is exist!please input agin!"

       elif [[ ! ${user[$i]} =~ [[:alpha:]]+ ]];then           –>想匹配為大小寫字母及數字,但是user$此類還是可以添加成功

          echo "please input correct string"

       else

          useradd ${user[$i]}&&echo "${user[$i]}" |passwd –stdin ${user[$i]} &>/dev/null &&echo "${user[$i]} add success"&&let sum++

       fi

    done

fi

echo "sum of new adduser:$sum"

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

#!/bin/bash

#

declare -i sum=0

for i in {1..20};do

    useradd visitor${i}&&echo "add success"

    let sum+=$(id user1|cut -d" " -f1 |sed -r  's/\(.*\)//g;s/uid=//g')

done

echo "userid sum:$sum"  

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

#!/bin/bash

#

echo "At the beginning of the line # ,rc.sysinit:$(cat /etc/rc.d/rc.sysinit |egrep '^#' |wc -l)"

echo "Blank row ,rc.sysinit:i$(cat /etc/rc.d/rc.sysinit |egrep '^$' |wc -l)"

echo 

echo "At the beginning of the line # ,functions:$(cat /etc/rc.d/init.d/functions |egrep '^#' |wc -l)"

echo "Blank row ,functions:i$(cat /etc/rc.d/init.d/functions |egrep '^$' |wc -l)"

echo

echo "At the beginning of the line # ,/etc/fstab:$(cat /etc/fstab |egrep '^#' |wc -l)"

echo "Blank row ,/etc/fstab:i$(cat /etc/fstab |egrep '^$' |wc -l)"

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

#!/bin/bash

#

echo "/bin/bash user==>uname uid:"

echo "$(awk -F: '$NF=="/bin/bash"{print $1,$3}' /etc/passwd)"

echo "sum of uid:$(awk -F: 'BEDIN{sum=0}$NF=="/bin/bash"{sum=sum+$3}END{print sum}' /etc/passwd)"

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

#!/bin/bash

#

User=($(awk -F: '{print $1}' /etc/passwd))

for i in $(seq 0 $[${#User[@]}-1]);do

    if [ $(id ${User[$i]} |cut -d" " -f3 |awk -F"," '{print NF}') -gt 1 ];then

        echo "user who have supp-group:${User[$i]}"

        let sum++

    fi

done

echo "sum,user who have supplementary group:$sum"

13.創建一個有至少兩個物理卷組成的大小為20G的卷組,要求:PE大小為8M;

在卷組中創建一個大小為5G的邏輯卷mylv1,格式戶為ext4文件系統,開機自動掛載至/users目錄,支持acl;

分區:

fdisk /dev/sdb

fdisk /dev/sdc

分別創建/dev/sdb3、/dev/sdc1分區;分區類型設置8e;partx -a /dev/sdb3、partx -a /dev/sdc1重讀硬盤分區表信息

lvm創建:

(1)pvcreate /dev/sdb3 /deb/sdbc1

(2)vgcteate -s 8M myvg /deb/sdb3 /deb/sdc1

(3)lvcreate -L 5G -n mylv1 myvg

(4)mkfs.ext4 /dev/mapper/myvg-mylv1

(5)mkdir /users

(6)vim /etc/fstab –>添加一條內容:/dev/mapper/myvg-mylv1  /users   ext4    rw,acl,auto     0 0

(7)

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

useradd -m -k /etc/skel -d /users/magedu magedu;su -l magedu ;cp -a /etc/pam.d /users/magedu

15.擴展mylv1至9G,確保擴展后原有數據可用;

lvextend -L 9G /dev/mapper/myvg-mylv1 ; resize2fs /dev/mapper/myvg-mylv1 ;df -h

16.縮減mylv1至7G,確保擴展后原有數據可用;

umount /dev/mapper/myvg-mylv1

e2fsck -f /dev/mapper/myvg-mylv1

resize2fs /dev/mapper/myvg-mylv1 7G

lvreduce -L 7G /dev/mapper/myvg-mylv1

mount /dev/mapper/myvg-mylv1 /users/

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

lvcreate -s -p r -L 1G -n mylv1-snapshot /dev/mapper/myvg-mylv1

mount /dev/mapper/myvg-mylv1 /mnt

文件系統備份:

tar -Jcvpf /tmp/mylv1_$(date +%Y-%m-%d-%T).tat.xz /mnt/

塊的備份:

dd if=/dev/mapper/myvg-mylv1–snapshot of=/tmp/myvg-mylv1–snapshot.dd

刪除快照:

lvremove /dev/mapper/myvg-mylv1–snapshot

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

(0)
snowsnow
上一篇 2016-06-22
下一篇 2016-06-22

相關推薦

  • cut,sort,head,tail,uniq基本使用

    1.列出當前系統上所有已經登錄的用戶的用戶名,同一個用戶登錄多次,則顯示一次[root@localhost ~]# who|cut -d” ” -f1|uniqgordenroot2.取出最后登錄到當前系統的用戶的相關信息。[root@localhost ~]# last|head -1|cut -d’ ‘ -…

    Linux干貨 2017-09-04
  • 系統啟動流程

    linux系統啟動流程 內核的設計結構單內核:linux(線程–lwp輕量級進程)微內核:windows(支持真正意義上的多線程) 單內核:很多功能驅動都集成在一起 微內核:內核很小,功能單一。模塊化 linux為了適應眾多用戶的不同硬件需求,linux內核在設計上采用模塊化設計??梢詣討B加載模塊。核心模塊:ko 內核所獨有的。共享對象:so 紅…

    Linux干貨 2016-09-19
  • 文件查找工具—find命令總結

    描述:   find命令用來在指定目錄下查找文件。任何位于參數之前的字符串都將被視為欲查找的目錄名。如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件。并且將查找到的子目錄和文件全部進行顯示。 說明:  工作特點:  查找速度略慢; 精確查找;實時查找;可能只搜索用戶具備讀取和執行權限的目錄…

    Linux干貨 2016-08-18
  • 創建CA證書

    創建CA證書 CA證書         CA 也擁有一個證書(內含公鑰和私鑰)。網上的公眾用戶通過驗證 CA 的簽字從而信任 CA ,任何人都可以得到 CA 的證書(含公鑰),用以驗證它所簽發的證書。       &nb…

    Linux干貨 2017-07-23
  • linux系統自動安裝之PXE

    PXE(集成在網卡上的)預啟動執行環境 (能夠通過網絡實現操作系統安裝) PXE工作原理1、Client向PXE Server上的DHCP發送IP地址請求消息,DHCP檢測Client是否合法(主要是檢測Client的網卡MAC地址),如果合法則返回Client的IP地址,同時將啟動文件pxelinux.0的位置信息一并傳送給Client2、Client向P…

    2018-01-16
  • CentOS多網卡單個ip和單個網卡多個ip的設置

    一、單個網卡設置一個IP地址     1.初始狀態已添加一個網卡eth0,并設置的均為自動獲取IP地址,如下圖所示:網卡為eth0,ip地址為10.1.249.36;為了后續實驗的順利進行,我們把NetworkManager服務關閉     chkconfig NetworkMa…

    Linux干貨 2016-09-06

評論列表(1條)

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

    寫的很棒,有的腳本是不是可以在優化一下那?

欧美性久久久久