馬哥教育網絡21期+第七周練習博客

馬哥教育網絡21期+第七周練習博客

1、創建一個10G分區,并格式為ext4文件系統;
首先掛載一個新的硬盤使用fdisk /dev/sdb進入相應的磁盤空間劃分一個10G的磁盤空間;
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2610, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +10G

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
使用partx -a /dev/sdb查看是否讀取到sdb中的磁盤分區;
[root@wanghongkai ~]# partx -a /dev/sdb
BLKPG: Device or resource busy
error adding partition 1

查看內核是否識別到剛剛創建的磁盤空間;
[root@wanghongkai ~]# cat /proc/partitions 
major minor  #blocks  name

   8        0  125829120 sda
   8        1     512000 sda1
   8        2   20971520 sda2
   8        3   10485760 sda3
   8        4          1 sda4
   8        5    2097152 sda5
   8        6   10486742 sda6
   8        7   10490413 sda7
   8       16   20971520 sdb
   8       17   10490413 sdb1
使用mkfs.ext4將需要掛載磁盤文件系統變成ext4文件系統:
[root@wanghongkai ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655776 inodes, 2622603 blocks
131130 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2688548864
81 block groups
32768 blocks per group, 32768 fragments per group
8096 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 37 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.


   (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;fdis  
[root@wanghongkai ~]# blkid /dev/sdb1
/dev/sdb1: LABEL="MYDATA" UUID="058d82fb-8dbe-4284-b588-4b5e2677bf75" TYPE="ext4" 
[root@wanghongkai ~]# tune2fs -o acl,fdis /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
Invalid mount option set: acl,fdis



   (2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳;
先建立新的文件夾:
    [root@wanghongkai mydata]# pwd
    /data/mydata
    [root@wanghongkai ~]# mount -o noauto,noexec /dev/sdb1 /data/mydata/


2、創建一個大小為1G的swap分區,并創建好文件系統,并啟用之;
[root@wanghongkai ~]# mkswap /dev/sdb2
Setting up swapspace version 1, size = 1060284 KiB
no label, UUID=9757cdbd-1fee-4822-b301-735e3271fbdf
[root@wanghongkai ~]# blkid /dev/sdb2
/dev/sdb2: UUID="9757cdbd-1fee-4822-b301-735e3271fbdf" TYPE="swap" 
[root@wanghongkai ~]# swapon  /dev/sdb2



3、寫一個腳本
   (1)、獲取并列出當前系統上的所有磁盤設備;
    #!/bin/bash
    #
    i=`fdisk -l | egrep "^Disk /"  | cut -d ',' -f1`
    echo "yong you $i "


   (2)、顯示每個磁盤設備上每個分區相關的空間使用信息;
    [root@wanghongkai ~]# cat yingpan.sh 
    #!/bin/bash
    YP1=`fdisk -l | egrep "^Disk /dev/(h|s)d[a-z]" | cut -d'/' -f3 | cut -d':' -f1 | head -n1` 
    YP2=`fdisk -l | egrep "^Disk /dev/(h|s)d[a-z]" | cut -d'/' -f3 | cut -d':' -f1 | tail -n1`
    fdisk -l /dev/$YP1
    fdisk -l /dev/$YP2

4、總結RAID的各個級別及其組合方式和性能的不同;
RAID:獨立榮耀磁盤陣列
提高IO能力:磁盤并行讀寫;
提高耐用性:磁盤冗余來實現
目的是:將多塊磁盤組織在一起的工作方式;
    RAID0:讀寫性能提升,無容錯能力,至少需要2塊磁盤
    RAID1:讀性能提升,寫性能降低,有冗余能力,至少需要2塊磁盤;
    RAID4:至少需要三塊磁盤;單塊盤用于校驗盤,出現問題性能下降;
    RAID5:讀寫性能提升,可用空間(N-1)*min(取決于最小空間大?。?,有冗余能力(1塊磁盤);最少要有三塊磁盤;
    RAID6:讀寫性能提升,可用空間(N-2)*min,有冗余能力(2塊磁盤);最少要有四塊磁盤;
    RAID-10:讀、寫性能提升,可用空間:N*min(S1,S2,...)/2;有容錯能力:每組鏡像最多只能壞一塊;最少磁盤數:4, 4+;
    JBOD:Just a Bunch Of Disks
        功能:將多塊磁盤的空間合并一個大的連續空間使用;
        可用空間:sum(S1,S2,...)



5、創建一個大小為10G的RAID1,要求有一個空閑盤,而且CHUNK大小為128k;
1,fdisk分配磁盤空間
2,partx -a內核讀取分區表
mdadm -C /dev/md0 -n 2 -c 128k -l 1 -x 1 -a yes /dev/sdb{1,2,3}



6、創建一個大小為4G的RAID5設備,chunk大小為256k,格式化ext4文件系統,要求可開機自動掛載至/backup目錄,而且不更新訪問時間戳,且支持acl功能;
[root@wanghongkai dev]# mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 -c 256 /dev/sdb{1,2,3,4}



7、寫一個腳本
   (1) 接受一個以上文件路徑作為參數;
   (2) 顯示每個文件擁有的行數;
   (3) 總結說明本次共為幾個文件統計了其行數;
    [root@wanghongkai ~]# cat wenben.sh 
    #!/bin/bash
    #
    if [ -z $1 ]; then
        echo "qing shu ru wen jian ming."
    elif [ $# -lt 2 ]; then
        echo "qing shu ru 2 ge wen jian lu jing."
    elif hanshu=`cat $@ | wc -l`; then
        echo "yi gong $# ge wen jian tong ji le yi gong $hanshu."
    fi



8、寫一個腳本
   (1) 傳遞兩個以上字符串當作用戶名;
   (2) 創建這些用戶;且密碼同用戶名;
   ?(3) 總結說明共創建了幾個用戶;
[root@wanghongkai ~]# cat 1.sh 
#!/bin/bash
#
if [ -z $1 ]; then
     echo "qing shu ru you xiao zi fu ."
elif id $1 &> /dev/null; then
    echo "yong hu yijingcunzai"      
elif useradd $1 &> /dev/null && echo "$1" | passwd --stdin $1 &> /dev/null; then
    echo "yong hu yi jing chuang jian."
fi


[root@wanghongkai ~]# cat 1.sh 
#!/bin/bash
#
if [ -z $1 ]; then
     echo "qing shu ru you xiao zi fu ."
elif id $1 &> /dev/null; then
    echo "yong hu yijingcunzai"      
elif useradd $1 &> /dev/null && echo "$1" | passwd --stdin $1 &> /dev/null; then
    echo "yong hu yi jing chuang jian."
    echo "yi gong chuang jian le $# yong hu."
fi

#



9、寫一個腳本,新建20個用戶,visitor1-visitor20;計算他們的ID之和;
[root@wanghongkai ~]# cat yonghu.sh 
#!/bin/bash
#
for i in {1..20}; do 
    if id visitor$i > /dev/null; then
    echo "yong hu visitor$i yi jing cun zai."
    elif useradd visitor$i &> /dev/null && echo "visitor$i" | passwd --stdin visitor$i &> /dev/null; then
    echo "yong hu visitor$i yi jing chuang jian."
    fi
done

A=`cat /etc/passwd | egrep "^visitor" | wc -l`
echo "yi gong chuang jian le $A ge yong hu."
#
for i in {1..20};do
    uid=`grep "\<visitor$i\>" /etc/passwd | cut -d: -f3`
    sumid=$[ $sumid + $uid ]
done
echo "ID sum:$sumid"



10、寫一腳本,分別統計/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#號開頭的行數之和,以及總的空白行數;
    [root@wanghongkai ~]# cat hangshu#sh 
    #!/bin/bash
    A=`egrep "^#" /etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/fstab | wc -l`
    echo "yi # kaitou de hang shu yi gong $A."
    B=`egrep "^$" /etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/fstab | wc -l`
    echo "kong bai hang yi gong $B."
    C=$[$A + $B]
    echo "yi gong you $C hang."


11、寫一個腳本,顯示當前系統上所有默認shell為bash的用戶的用戶名、UID以及此類所有用戶的UID之和;
    [root@wanghongkai ~]# cat 2.sh 
    #!/bin/bash
    A=`egrep "\<bash\>$" /etc/passwd | cut -d: -f1,3`
    echo -e "mo ren wei bash jie wei\n$A"
    #
    for i in $(egrep "\<bash\>$" /etc/passwd | cut -d: -f3); do
        let sumuid+=$i
    done
    #
    echo "uid de zong he wei $sumuid ."

12、寫一個腳本,顯示當前系統上所有,擁有附加組的用戶的用戶名;并說明共有多少個此類用戶;
[root@wanghongkai bin]# cat group2.sh 
#!/bin/bash
#ban ben 1.0
#time 2016.8.21-13.49
#zuo zhe wostop
#
while read line; do
   if [ -n $[`echo $line | cut -d':' -f4`] ]; then
      echo -e -n "username: `cat $line | cut -d':' -f4 | sort -r | uniq -c | head -n9`\t"
      echo "gid:`echo $line | cut -d: -f3 `"
   fi
done < /etc/group


13、創建一個由至少兩個物理卷組成的大小為20G的卷組;要求,PE大小為8M;而在卷組中創建一個大小為5G的邏輯卷mylv1,格式化為ext4文件系統,開機自動掛載至/users目錄,支持acl;
    1,使用磁盤fdisk中創建磁盤分區,并將磁盤類型更改成8e
    [root@wanghongkai ~]# pvcreate /dev/sdb1 /dev/sdb2
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdb2" successfully created
[root@wanghongkai ~]# pvdisplay 
  "/dev/sdb1" is a new physical volume of "5.01 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               5.01 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               aF1V23-pou8-fzli-xkf1-AiBc-nm1M-FtHsuM

  "/dev/sdb2" is a new physical volume of "5.01 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb2
  VG Name               
  PV Size               5.01 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               SgPudz-z0xI-joDL-FJe5-n6MI-cD0y-M73Tu6
[root@wanghongkai ~]# vgcreate -s 8m vgdata /dev/sdb1 /dev/sdb2

[root@wanghongkai ~]# vgdisplay 
  --- Volume group ---
  VG Name               vgdata
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               10.02 GiB
  PE Size               8.00 MiB
  Total PE              1282
  Alloc PE / Size       0 / 0   
  Free  PE / Size       1282 / 10.02 GiB
  VG UUID               78w7zD-vmRI-1PlH-vfuN-mlPW-8kj6-g96FfD

[root@wanghongkai ~]# lvcreate -n mylv -L 5G vgdata 

[root@wanghongkai ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vgdata/mylv
  LV Name                mylv
  VG Name                vgdata
  LV UUID                3qlBWR-mRRZ-LnsH-zguC-L6bE-GOHX-veFZOA
  LV Write Access        read/write
  LV Creation host, time wanghongkai, 2016-08-09 07:23:51 -0400
  LV Status              available
  # open                 0
  LV Size                5.00 GiB
  Current LE             640
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
[root@wanghongkai ~]# mkfs.ext4 /dev/vgdata/mylv 
進入到/etc/fstab文件下編輯此文本內容;
proc                    /proc                   proc    defaults        0 0
UUID=ee5ad1f3-5f95-4642-91cb-1e9bf91b81eb       /users  ext4    defaults,acl    0 0     


14、新建用戶magedu;其家目錄為/users/magedu,而后su切換至此用戶,復制多個文件至家目錄;
[root@wanghongkai /]# useradd magedu -d /users/magedu
[magedu@wanghongkai /]$ cp /etc/passwd /etc/fstab /etc/issue /users/magedu/
[root@wanghongkai /]# cd /users/magedu/
[root@wanghongkai magedu]# ls
fstab  issue  passwd

15、擴展mylv1至9G,確保擴展完成后原有數據完全可用;
[root@wanghongkai magedu]# lvextend -L +4G /dev/vgdata/mylv 
  Size of logical volume vgdata/mylv changed from 5.00 GiB (640 extents) to 9.00 GiB (1152 extents).
  Logical volume mylv successfully resized.
[root@wanghongkai magedu]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              20G  4.7G   14G  26% /
tmpfs                 499M   80K  499M   1% /dev/shm
/dev/sda1             477M   54M  398M  12% /boot
/dev/sda3             9.8G   26M  9.2G   1% /home
/dev/sr0              4.1G  4.1G     0 100% /media/CentOS_6.4_Final
/dev/mapper/vgdata-mylv
                  8.8G   12M  8.3G   1% /users
[root@wanghongkai magedu]# ll /users/magedu/
total 8
-rw-r--r--. 1 magedu magedu 971 Aug  9 08:10 fstab
-rw-r--r--. 1 magedu magedu  47 Aug  9 08:10 issue


16、縮減mylv1至7G,確保縮減完成后原有數據完全可用;
(取消掛載,強制檢查、縮減文件系統、縮減lv、重新掛載)
root@wanghongkai ~]# e2fsck -f /dev/vgdata/mylv 
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vgdata/mylv: 22/589824 files (0.0% non-contiguous), 72682/2359296 blocks
[root@wanghongkai ~]# resize2fs /dev/vgdata/mylv 7G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vgdata/mylv to 1835008 (4k) blocks.
The filesystem on /dev/vgdata/mylv is now 1835008 blocks long.

[root@wanghongkai ~]# lvreduce -L 7G /dev/vgdata/mylv 
  WARNING: Reducing active logical volume to 7.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vgdata/mylv? [y/n]: y
  Size of logical volume vgdata/mylv changed from 9.00 GiB (1152 extents) to 7.00 GiB (896 extents).
  Logical volume mylv successfully resized.


17、對mylv1創建快照,并通過備份數據;要求保留原有的屬主屬組等信息;
[root@wanghongkai ~]# lvcreate -s -L 1G -n mylv-snap -p r /dev/vgdata/mylv 
Logical volume "mylv-snap" created.
[root@wanghongkai ~]# mount /dev/vgdata/mylv-snap /mnt
mount: block device /dev/mapper/vgdata-mylv--snap is write-protected, mounting read-only

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

(0)
wostopwostop
上一篇 2016-08-22
下一篇 2016-08-22

相關推薦

  • 第一周作業

    1、描述計算機的組成及其功能。
    2、按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別。
    3、描述Linux的哲學思想,并按照自己的理解對其進行解釋性描述。
    4、說明Linux系統上命令的使用格式;詳細介紹ifconfig、echou、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相應的示例來闡述。
    5、如何在Linux系統上獲取命令的幫助信息,請詳細列出,并描述man文檔的章節是如何劃分的。
    6、請羅列Linux發行版的基礎目錄名稱命名法則及共用規定。

    Linux干貨 2017-12-03
  • shell腳本編寫規范

    1 腳本名以.sh結尾,名稱盡量見名之意,比如ClearLog.sh Clear_Log.sh clearlog.sh SerRestart.sh Ser_Restart.sh;2 盡量使用UTF-8編碼,注釋及輸出盡量使用英文;3 一般給到執行權限,但一些關于變量的配置文件不用加執行權限;4 執行的時候可以使用bash 執行,或者使用bash -x執行,可…

    Linux干貨 2017-04-16
  • centos6啟動故障及修復

    前言 前文中我們熟悉了linux的啟動流程,如果在啟動過程中文件丟失或者損壞了怎么辦呢?難道只有重裝系統這一條路嗎?那我們不是成了普通網管了嗎?作為專業的運維工程師,我們需要掌握如何快速修復系統啟動。 實驗1: 破壞/boot/grup/下的文件——-stage2 階段  不影響啟動  mv /boot/grub …

    2017-09-03
  • Linux網站架構系列之Mysql—-部署篇

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://nolinux.blog.51cto.com/4824967/1321079   MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB公司開發,目前屬于Oracle公司。MySQL所使用的SQL語言是用于…

    Linux干貨 2015-04-01
  • SHELL編程之數組運用及YUM軟件包管理

    SHELL編程中,當要引用到多個值的時候,一個一個地進行變量賦值會讓我們的腳本變得繁瑣,不利于代碼的優化,所以,就需要通過數組進行定義,優化代碼,減少不必要的定義和命令操作。 SHELL中的數組:存儲多個元素的連續內存空間 數組名:整個屬組只有一個名字 數組索引: 編號從0開始   數組名[索引]   ${array_name[index…

    Linux干貨 2016-08-24
  • Shell腳本編程之循環(for、while、until)

    Shell腳本編程之循環(for、while、until)   一、循環語句的對比: for語句 while語句 until語句 執行機制: 依次將列表中的元素賦值給“變量名”; 每次賦值后即執行一次循環體; 直到列表中的元素耗盡,循環結束 CONDITION:循環控制條件;進入循環之前,先做一次判斷;每一次循環之后會再次做判斷;條件為“true”…

    Linux干貨 2016-08-18

評論列表(1條)

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

    寫的很好,排版也很棒,加油,不要用拼音了

欧美性久久久久