第七周作業

第七周

1,創建一個10G分區,并格式化為ext4文件系統;
(1) 要求其block大小為2048,預留空間百分比為2,卷標為MYDATA,默認掛載屬性包含acl;
(2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳;

[root@www ~]# fdisk /dev/sda  <-------------fdisk命令創建10G分區
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
     switch off the mode (command 'c') and change display units to
     sectors (command 'u').
Command (m for help): n
First cylinder (6814-15665, default 6814): 
Using default value 6814
Last cylinder, +cylinders or +size{K,M,G} (6814-15665, default 15665): +10G           
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.  

[root@www ~]# partx -a /dev/sda  <----------------partx命令讓kernel讀取新建的分區信息
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2
BLKPG: Device or resource busy
error adding partition 3
BLKPG: Device or resource busy
error adding partition 4
BLKPG: Device or resource busy
error adding partition 5  
[root@www ~]# mke2fs -t ext4 -b 2048 -L MYDATA -m 2 /dev/sda5 <------------按要求創建文件系統
mke2fs 1.41.12 (17-May-2010)
Filesystem label=MYDATA
OS type: Linux
Block size=2048 (log=1)
Fragment size=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 5242030 blocks
104840 blocks (2.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=542113792
320 block groups
16384 blocks per group, 16384 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 
    16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 
    2048000, 3981312

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

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

[root@www ~]# tune2fs -o acl /dev/sda5    <---------------------用tune2fs修改默認掛載屬性包含acl
tune2fs 1.41.12 (17-May-2010)  

[root@www ~]# tune2fs -l /dev/sda5        <---------------------用tune2fs驗證結果
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   MYDATA
Last mounted on:          <not available>
Filesystem UUID:          1b73355f-b889-4bfb-840e-5102f10d65cf
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    acl             <---------------------默認掛載選項已修改包含acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              655360
Block count:              5242030
Reserved block count:     104840
Free blocks:              5120476
Free inodes:              655349
First block:              0
Block size:               2048
Fragment size:            2048
Reserved GDT blocks:      512
Blocks per group:         16384
Fragments per group:      16384
Inodes per group:         2048
Inode blocks per group:   256
Flex block group size:    16
Filesystem created:       Sat Sep  2 20:08:23 2017
Last mount time:          n/a
Last write time:          Sat Sep  2 20:09:36 2017
Mount count:              0
Maximum mount count:      28
Last checked:             Sat Sep  2 20:08:23 2017
Check interval:           15552000 (6 months)
Next check after:         Thu Mar  1 20:08:23 2018
Lifetime writes:          225 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:           256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      bd60bce1-1bf1-4db7-af63-032fa657b0d0
Journal backup:           inode blocks  

[root@www ~]# mkdir -pv /data/mydata                 <----------------------創建mydata目錄
mkdir: created directory `/data'
mkdir: created directory `/data/mydata'  

[root@www ~]# mount -t ext4 -o noexec,noatime /dev/sda5 /data/mydata <---------掛載文件系統至mydata目錄

[root@www ~]# mount                                  <-------------用mount命令驗證結果
/dev/sda2 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sda5 on /data/mydata type ext4 (rw,noexec,noatime)  <---------------掛載后帶有noexec和noatime屬性

注意:如要讓新建的文件系統重啟后自動掛載,需添加如下內容至/etc/fstab文件中;
LABEL=MYDATA /data/mydata ext4 defaults,acl,noexec,noatime 0 0

/etc/fstab文件分6個字段:
a. 要掛載的設備,可用設備文件,LABEL名或UUID;如示例中用LABEL=MYDATA
b. 掛載點;如示例中/data/mydata
c. 文件系統類型,如示例中ext4; 
d. 掛載選項;默認defaults,如選項有多個,彼此間用逗號“,”分隔;
e. 備份頻率,0為不備份,1為每天備份,2為隔天備份;
f. 系統啟動是是否自檢,0為不自檢,1為優先自檢,2為次級優先自檢;


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

[root@www ~]# fdisk /dev/sda   <-------------fdisk命令創建1G分區

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
First cylinder (8120-15665, default 8120): 
Using default value 8120
Last cylinder, +cylinders or +size{K,M,G} (8120-15665, default 15665): +1G

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

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks. 

[root@www ~]# partx -a /dev/sda  <----------------partx命令讓kernel讀取新建的分區信息
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2
BLKPG: Device or resource busy
error adding partition 3
BLKPG: Device or resource busy
error adding partition 4
BLKPG: Device or resource busy
error adding partition 5
BLKPG: Device or resource busy
error adding partition 6

[root@www ~]# mkswap /dev/sda6  <------------------mkswap命令創建swap分區
Setting up swapspace version 1, size = 1060252 KiB
no label, UUID=3fdbb6e2-5e02-4139-b141-3f49ad4b37fd

[root@www ~]# blkid             <------------------blkid命令查看所有文件系統
/dev/sda1: UUID="8631ceb8-a29c-4205-99fa-947bd93ec3a5" TYPE="ext4" 
/dev/sda2: UUID="c5e05cf4-7e32-402e-aefa-1353baf6df38" TYPE="ext4" 
/dev/sda3: UUID="f3e097ca-bd89-451e-8f35-fb0c31e07c6c" TYPE="swap" 
/dev/sda5: LABEL="MYDATA" UUID="1b73355f-b889-4bfb-840e-5102f10d65cf" TYPE="ext4" 
/dev/sda6: UUID="3fdbb6e2-5e02-4139-b141-3f49ad4b37fd" TYPE="swap"  <-------------新建的swap分區

[root@www ~]# swapon /dev/sda6  <---------------------啟用swap分區

[root@www ~]# swapon -s         <---------------------驗證swap是否啟用
Filename                Type        Size    Used    Priority
/dev/sda3                               partition   2097148 0   -1
/dev/sda6                               partition   1060252 0   -2

注意:注意:如要讓新建的文件系統重啟后自動掛載,需添加如下內容至/etc/fstab文件中;關于/etc/fstab文件中的字段在上文中已有解釋,在此不再贅述。 
UUID=3fdbb6e2-5e02-4139-b141-3f49ad4b37fd swap swap defaults 0 0


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

[root@www ~]# cat diskinfo.sh 
#!/bin/bash
fdisk -l        <-------------------------fdisk -l列出系統上所有磁盤設備
for par in $(fdisk -l | grep "^/dev/[sh]d[a-z][0-9]" | cut -d' ' -f1); do <---用命令引用的結果當作列表作為變量par的值
    df -h $par  <-------------------------df -h查看每個列表中分區的空間使用信息
done

[root@www ~]# bash diskinfo.sh

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x33239dbf

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1306    10490413+  83  Linux
/dev/sdb4            1307        2610    10474380    5  Extended
/dev/sdb5            1307        2610    10474348+  83  Linux

Disk /dev/sda: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000ca814

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        6553    52428800   83  Linux
/dev/sda3            6553        6814     2097152   82  Linux swap / Solaris
/dev/sda4            6814       15665    71097336+   5  Extended
/dev/sda5            6814        8119    10484060   83  Linux
/dev/sda6            8120        8251     1060258+  83  Linux
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       9.8G   23M  9.3G   1% /mnt/sdb1
Filesystem      Size  Used Avail Use% Mounted on
-               476M  220K  476M   1% /dev
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb5       9.8G   23M  9.2G   1% /mnt/sdb5
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       190M   36M  145M  20% /boot
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        50G  2.3G   45G   5% /
Filesystem      Size  Used Avail Use% Mounted on
-               476M  220K  476M   1% /dev
Filesystem      Size  Used Avail Use% Mounted on
-               476M  220K  476M   1% /dev
Filesystem      Size  Used Avail Use% Mounted on
-               476M  220K  476M   1% /dev
Filesystem      Size  Used Avail Use% Mounted on
-               476M  220K  476M   1% /dev

4,總結RAID的各個級別及其組合方式和性能的不同。
4.1,何為RAID?
RAID (Redundant Arrays of Independent Disks),獨立磁盤構成的具有冗余能力的陣列,簡稱磁盤陣列。磁盤陣列由多塊磁盤,以硬件RAID卡或軟件形成組合成一個容量巨大的磁盤組,利用不同raid組合磁盤的方式,提升整個磁盤系統的效能。利用這項技術,將數據切割成許多區段,分別放在各個硬盤上。磁盤陣列還能利用同位校驗(Parity Check)的觀念,在數組中任意一個硬盤故障時,任可讀出數據,在數據重建時,將數據經計算后重新置入新硬盤中。
注意:雖然RAID可以預防數據丟失,但并不完全保證數據不會丟失,RAID不能代替數據備份。

4.2,RAID級別
RAID 0
實現RAID 0至少需要兩塊以上磁盤,它將兩塊以上的磁盤合并成一塊,數據連續地分割在每塊盤上??捎萌萘渴嵌鄩K磁盤的容量總和,因為帶寬加倍,所以讀/寫速度加倍,但RAID 0在提高性能的同時,沒有數據冗余,沒有數據校驗的功能,即沒有提供數據保護功能,只要任何一塊磁盤損壞就會丟失所有數據。因此RAID 0不可應用于需要數據高可用性的關鍵領域。

RAID 1
是由多塊磁盤所構成的磁盤陣列,其容量等于一塊磁盤的容量,因為其他的磁盤當作數據“鏡像”,所以RAID 1又稱為鏡像卷。RAID 1的寫入數據速度較慢,因為被分割的數據區段需要存在陣列上的每一塊磁盤上。RAID 1有數據冗余和校驗的功能,即提供了數據保護功能,任何一塊磁盤損壞都不會導致丟失數據。RAID 1磁盤陣列主要用在數據安全性要求高且能夠快速恢復被破壞數據的場合。

RAID 5
是一個存儲性能,數據安全和存儲成本兼顧的存儲解決方案。它可以為系統系統安全保障,但保障程度要比鏡像卷低而磁盤空間利用率比鏡像卷高。RAID 5磁盤陣列至少需要3塊磁盤組成,其容量等于n-1塊磁盤。RAID 5具有和RAID 0相近似的數據讀取速度,只是多了奇偶校驗信息,寫入數據的速度比對單個磁盤進行寫入操作稍慢。RAID 5是一種數據安全,I/O速度的權衡與存儲成本較低的解決方案。但是由于其工作方式的原因,在大于4Tb的場合下,磁盤故障發生后,數據重建的難度將大大增加。所以存儲行業并不建議使用RAID5。

RAID 6
是在RAID 5基礎上,為了進一步加強數據保護而設計的一種RAID方式。與RAID 5的不同之處于除了每個硬盤上都有同級數據XOR校驗區外,還有一個針對每個數據塊的XOR校驗區。當然,當前盤數據塊的校驗數據不可能存在當前盤而是交錯存儲的,這樣一來,等于每個數據塊有了兩個校驗保護屏障(一個分層校驗,一個是總體校驗),因此RAID 6的數據冗余性能相當好。但是,由于增加了一個校驗,所以寫入的效率較RAID 5還差,而且控制系統的設計也更為復雜,第二塊的校驗區也減少了有效存儲空間,所以組成RAID6陣列需至少4塊磁盤,磁盤利用率是n-2。

RAID 10/01
RAID 10是先鏡像再分區數據,再將所有硬盤分為兩組,視為是RAID 0的最低組合,然后將這兩組各自視為RAID 1運作。RAID 01則是跟RAID 10的程序相反,是先分區再將數據鏡像到兩組硬盤。它將所有的硬盤分為兩組,變成RAID 1的最低組合,而將兩組硬盤各自視為RAID 0運作。RAID 10/01磁盤利用率均為n/2。當RAID 10有一個硬盤受損,其余硬盤會繼續運作。RAID 01只要有一個硬盤受損,同組RAID 0的所有硬盤都會停止運作,只剩下其他組的硬盤運作,可靠性較低。如果以六個硬盤建RAID 01,鏡射再用三個建RAID 0,那么壞一個硬盤便會有三個硬盤離線。因此,RAID 10遠較RAID 01更為安全。


5,創建一個大小為10G的RAID 1,要求有一個空閑盤,而且chunk大小為128k;

[root@www ~]# mdadm -C /dev/md0 -a yes -n 2 -x 1 -c 128 -l 1 /dev/sdb{1,2,3}
[root@www ~]# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Sun Sep  3 02:11:03 2017
     Raid Level : raid1
     Array Size : 10482176 (10.00 GiB 10.73 GB)
  Used Dev Size : 10482176 (10.00 GiB 10.73 GB)
   Raid Devices : 2
  Total Devices : 3
    Persistence : Superblock is persistent

    Update Time : Sun Sep  3 02:11:55 2017
          State : clean 
 Active Devices : 2
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 1

           Name : www.iLove.org:0  (local to host www.iLove.org)
           UUID : dd4d92b5:6c1f0517:abf227fe:b579c6b2
         Events : 17

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       18        1      active sync   /dev/sdb2

       2       8       19        -      spare   /dev/sdb3

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

[root@www ~]# mdadm --create /dev/md1 -l5 -n3 -x1 -c 256 /dev/sdb{1,2,3,5} <---------------創建raid 5
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.

[root@www ~]# mdadm -D /dev/md1           <-----------------驗證raid 5創建結果
/dev/md1:
        Version : 1.2
  Creation Time : Sun Sep  3 02:20:40 2017
     Raid Level : raid5
     Array Size : 10498048 (10.01 GiB 10.75 GB)
  Used Dev Size : 5249024 (5.01 GiB 5.38 GB)
   Raid Devices : 3
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Sun Sep  3 02:21:35 2017
          State : clean 
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 256K

           Name : www.iLove.org:1  (local to host www.iLove.org)
           UUID : dd9a128d:0685c7b2:087e858b:7965b4a1      <------------------記錄UUID
         Events : 18

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       18        1      active sync   /dev/sdb2
       4       8       19        2      active sync   /dev/sdb3

       3       8       21        -      spare   /dev/sdb5

[root@www ~]# mke2fs -t ext4 /dev/md1            <-----------------------創建文件系統類型ext4
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=64 blocks, Stripe width=128 blocks
657072 inodes, 2624512 blocks
131225 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
8112 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 30 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

[root@www dev]# vim /etc/fstab  <--------------------編輯/etc/fstab文件添加下面的掛載信息
UUID=dd9a128d:0685c7b2:087e858b:7965b4a1        /backup ext4    defaults,noatime,acl    0       0

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

#!/bin/bash

if [ $# -lt 1 ]; then        <--------------------設置給定的參數不得低于2個
    echo "Please enter more than 2 arguments."
    exit 1
fi
num=0                      <-----------------定義變量lines為0
for files in $*; do              <--------------------設置變量files為$*特殊變量的值,$*表示所有參數
    if [ ! -f $files ]; then     <--------------------判斷變量files不是文本文件
        echo "${files} is not a ASCII text." <--------如果變量files不是文本文件,echo提示
    else
        echo "${files} has "$(wc -l < $files)" lines."  <-------變量files是文本文件,echo顯示文本文件的行數
    let num++          <--------------------計算每次給定的文本文件數量,然后相加
    fi
done
echo "File numbers:"$num   <-------------------echo顯示最終給定的所有的文本文件數量
注意:腳本中,在for循環內嵌套了一個if多分支語句。

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

#!/bin/bash

if [ $# -lt 1 ]; then             <--------------------設置給定的參數不得低于2個
    echo "Please enter more than 2 arguments."
    exit 1
fi
sum=0
for user in $*; do          <--------------------設置變量user為$*特殊變量的值,$*表示所有參數
    if grep "^$user\>" /etc/passwd &> /dev/null; then  <--------------判斷要創建的帳號是否存在
    echo "$user exists."
    exit 2
    else
    useradd $user
    echo $user | passwd --stdin $user &> /etc/null
    echo "$user added."
    let sum++               <---------------------循環每執行一次,數量加1
    fi
done    
echo "count user numbers:"$sum

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

#!/bin/bash
declare -i sum=0            <-------------------定義變量sum為數值型,bash變了默認為字符型
for i in {1..20}; do
    useradd visitor$i
    sum+=$(id -u visitor$i)   <-----------------相加每次id號
done
echo "id sum is $sum."

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

(0)
ZhengBinZhengBin
上一篇 2017-09-03
下一篇 2017-09-03

相關推薦

  • 8.1作業

    8月1日作業 創建testuser uid 1234,主組:bin,輔助組:root,ftp,shell:/bin/csh home:/testdir/testuser [root@localhost ~]# useradd -u 1234 -g bin -G root,ftp&…

    Linux干貨 2016-08-04
  • 搭建簡單的ftp和http

    搭建簡單的ftp和http 我們主要嘗試光盤和編譯兩種方式安裝 ftp 首先我們先安裝ftp ftp可以用來做文件傳輸,也可以搭建ftp作為我我們的網絡yum源 首先我們要先把鏡像連接到我們的Linux中 進入/etc/yum.repos.d/創建一個.repo結尾的文件,在里面配置自己的yum源 [base] baseurl=file:///misc/cd…

    2017-06-15
  • linux中如何使用幫助

     在linux學習過程中,會遇到許多困難,尤其是一些命令掌握不牢固,不知道具體用法;或者是想要實現一些功能而不知道使用何種命令。這時求人不如求己,上網求助不如自己學會使用幫助,下面介紹幾種linux幫助的用法。 1.what is +命令    執行這條命令可以顯示命令的簡短描述,讓大家了解命令的基本功能。同時可以看到命令相關章…

    2017-07-23
  • vsftpd虛擬用戶搭建

    首選的FTP服務器搭建方式 安裝vsftpd      yum install -y vsftpd      systemctl enable vsftpd     #設置開機啟動      systemctl is-enabled vsf…

    Linux干貨 2017-04-27
  • 第四周作業

    Linux系統文件管理使用案例 1、 復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 首先,利用cp命令將/etc/skel目錄復制為/home/tuser1: [root@localhost ~]# cp -r /etc/skel /home/tuser1 隨后通過chmo…

    Linux干貨 2018-03-24
  • 使用NFS和Samba文件服務搭建博客站點

    使用NFS和Samba文件服務搭建博客站點 實驗目的:分別使用NFS和Smaba文件服務實現wordpress 實驗要求: (1) server導出/data/application/web,在目錄中提供wordpress; (2) client掛載nfs server導出的文件系統至/var/www/html;(3) 客戶端1(lamp),部署w…

    2017-04-30

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-10-10 13:11

    磁盤操作運維工作中用的不是特別頻繁,但是非常重要,他是數據安全的基礎,所以應特別注意加深理解和學習

欧美性久久久久