N22-℡浮生.若夢 ╮第七周作業

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


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

~]# mke2fs -t mkfs.ext4 -b 2048 -L MYDATA -m 2 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
文件系統標簽=MYDATA
操作系統:Linux
塊大小=2048 (log=1)
分塊大小=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 5241190 blocks
104823 blocks (2.00%) reserved for the super user
第一個數據塊=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

正在寫入inode表: 完成                            
Writing superblocks and filesystem accounting information: 完成

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

~]# tune2fs -o acl /dev/sdb1
tune2fs 1.41.12 (17-May-2010)

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

~]# mkdir -pv /data/mydata
mkdir: 已創建目錄 "/data"
mkdir: 已創建目錄 "/data/mydata"

mount -o noatime,noexec /dev/sdb1 /data/mydata/

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

# mkswap /dev/sdb2
# swapon /dev/sdb2

3、寫一個腳本
(1)、獲取并列出當前系統上的所有磁盤設備;

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

#!/bin/bash
fdisk -l |grep  "/dev/[hs]d*"
echo
df -h

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

RAID0:2快以上的磁盤并聯起來,組成一個大容量硬盤。儲放數據時,分段后分散儲存在這些磁盤中。讀寫時可以并行處理,
      RAID0是速度最快的。
      無冗余功能,如果硬盤損壞,數據會丟失
      至少2快硬盤
      
RAID1:兩組以上的N個磁盤相互作鏡像,可用容量為總容量的一半。RAID 1的數據安全性在所有的RAID級別上來說是最好,
      讀性能提升、寫性能略有下降
      有容錯能力:互為鏡像
      至少2快硬盤
      
RAID5:RAID 5至少需要三塊硬碟,RAID 5不是對存儲的數據進行備份,而是把數據和相對應的奇偶校驗信息存儲到組成RAID5的各個磁盤上,并且奇偶校驗信息和相對應的數據分別存儲於不同的磁盤上。當RAID5的一個磁盤數據發生損壞後,可以利用剩下的數據和相應的奇偶校驗信息去恢復被損壞的數據。
      讀、寫性能提升
      有容錯能力:1塊磁盤
      至少3快硬盤
      
RAID6:與RAID 5相比,RAID 6增加第二個獨立的奇偶校驗信息塊。兩個獨立的奇偶系統使用不同的算法,數據的可靠性非常高,任意兩塊磁盤同時失效時不會影響數據完整性。
      讀、寫性能提升
      有容錯能力:2塊磁盤
      至少4快硬盤
      
RAID10:RAID10是一個混合型陣列,先是把2組(多組)做RAID1 再在2組(多組)基礎上做RAID0,
      讀、寫性能提升
      有容錯能力:每組鏡像最多只能壞一塊;
      至少4快硬盤

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

mdadm -C /dev/md1 -a yes -c 128 -x 1 -l 1 -n 2 /dev/sdb{1,2,3}

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

~]# mdadm -C /dev/md5 -n 3 -l 5 -a yes /dev/sdb{1,2,3} -c 256
~]# mkfs.ext4 /dev/md5
~]# echo "/dev/md5 /backup ext4 noatime,acl 0 0" &>> /etc/fstab

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

#!/bin/bash
##
if [ $# -lt 1 ]; then
   echo "At least on path."
   exit 1
fi

for i in $@; do
    echo "$i have $(wc -l $i |cut -d" " -f1) lines."
done
    echo "The statistics of the number of lines for $# file"

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

#!/bin/bash
#
if [ $# -lt 2 ]; then
    echo "Please enter a string of two or more"
    exit 2
fi

for i in $@; do
    useradd $i && echo $i | passwd --stdin $i &> /dev/null
done

echo "A total of created $# users"

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

#!/bin/bash
###
declare -i sum=0
for i in {1..20};do
    useradd visitorl$i &> /dev/null
    uid=$(id -u visitorl$i)
    sum+=$uid
done
echo "User ID sum:$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 "^#" $i |wc -l)
     sum2+=$( grep "^[[:space:]]*$" $i |wc -l)
done

echo -e "# at the beginning of the row has: $sum1" " Empty line with: $sum2"

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

#!/bin/bash
####
declare -i sum=0;
grep "/bin/bash$" /etc/passwd | cut -d: -f1,3

for i in `grep "/bin/bash$" /etc/passwd | cut -d: -f3`;do
      sum=$[$sum+$i]
done        
            
echo "These users for the sum of the UID:$sum"

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

#!/bin/bash
##
declare -i num=0;
for i in `cut -d: -f1 /etc/passwd`;do
      group=$(id $i | cut -d" " -f3 | awk -F, '{print $2}')
      if [ -n "$group" ];then
      echo $i
      let num++
      fi
done
echo "user number: $num"

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

# pvcreate /dev/sda5
# pvcreate /dev/sda6

# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda5
  VG Name               testvg
  PV Size               10.00 GiB / not usable 3.08 MiB
  Allocatable           yes 
  PE Size               8.00 MiB
  Total PE              1280
  Free PE               640
  Allocated PE          640
  PV UUID               Pc7Y2c-T4G4-VTEX-s9VB-5UJn-PA52-C00blh
   
  --- Physical volume ---
  PV Name               /dev/sda6
  VG Name               testvg
  PV Size               10.00 GiB / not usable 4.54 MiB
  Allocatable           yes 
  PE Size               8.00 MiB
  Total PE              1280
  Free PE               1280
  Allocated PE          0
  PV UUID               ogazfK-fOVm-jPF8-J5Xz-EWTf-N21W-nZrE12

# vgcreate -s 8M testvg /dev/sda5 /dev/sda6
# vgdisplay 
  --- Volume group ---
  VG Name               testvg
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               20.00 GiB
  PE Size               8.00 MiB
  Total PE              2560
  Alloc PE / Size       640 / 5.00 GiB
  Free  PE / Size       1920 / 15.00 GiB
  VG UUID               rUcw27-9g09-u15D-XxoY-xHAA-HPIt-q231rc
  
# lvcreate -L 5G -n mylv1 testvg
  ]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/testvg/mylv1
  LV Name                mylv1
  VG Name                testvg
  LV UUID                AB7oXl-Dcfd-igBB-BQku-2ndv-NRpP-XIBdI3
  LV Write Access        read/write
  LV Creation host, time mylinux, 2016-11-01 11:46:26 +0800
  LV Status              available
  # open                 1
  LV Size                5.00 GiB
  Current LE             640
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
  
# mkfs.ext4 /dev/testvg/mylv1
# mkdir /tmp/users
# echo "/dev/testvg/mylv1       /tmp/users              ext4    defaults,acl    0 0" >> /etc/fastab

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

# mkdir -p /users/magedu
# useradd -d /users/magedu magedu
# su - magedu
# cp /etc/fstab /users/magedu

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

# cp /etc/fstab /tmp/users
# lvextend -L +4GB /dev/testvg/mylv1

# resize2fs /dev/testvg/mylv1 
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/testvg/mylv1 is mounted on /tmp/users; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/testvg/mylv1 to 2359296 (4k) blocks.
The filesystem on /dev/testvg/mylv1 is now 2359296 blocks long.

# df -h
Filesystem                Size  Used Avail Use% Mounted on
/dev/sda2                  49G  2.6G   44G   6% /
tmpfs                     491M     0  491M   0% /dev/shm
/dev/sda1                 243M   30M  201M  13% /boot
/dev/mapper/testvg-mylv1  8.9G  140M  8.3G   2% /tmp/users

確保文件沒有損壞
# cat fstab 

#
# /etc/fstab
# Created by anaconda on Thu Sep  8 18:07:56 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=9a4ecef6-d82c-471d-bed5-4187746129c4 /                       ext4    defaults        1 1
UUID=34e5f6cf-c318-4048-ae39-cd3b2490de6d /boot                   ext4    defaults        1 2
UUID=6b42d8fc-e214-48c6-9faf-c0bf08955c96 swap                    swap    defaults        0 0
UUID=d49020d0-abe0-4ff3-b289-8c10b90e8362 /media                  ext4    defaults        0 0 
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/testvg/mylv1	/tmp/users		ext4	defaults,acl	0 0

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

# umount /dev/testvg/mylv1 

# e2fsck -f /dev/testvg/mylv1 
e2fsck 1.41.12 (17-May-2010)
第一步: 檢查inode,塊,和大小
第二步: 檢查目錄結構
第3步: 檢查目錄連接性
Pass 4: Checking reference counts
第5步: 檢查簇概要信息
/dev/testvg/mylv1: 12/589824 files (0.0% non-contiguous), 72672/2359296 blocks

# resize2fs /dev/testvg/mylv1 7G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/testvg/mylv1 to 1835008 (4k) blocks.
The filesystem on /dev/testvg/mylv1 is now 1835008 blocks long

# lvresize -L 7GB /dev/testvg/mylv1 
  WARNING: Reducing active logical volume to 7.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mylv1? [y/n]: y
  Reducing logical volume mylv1 to 7.00 GiB
  Logical volume mylv1 successfully resized
  
# mount /dev/testvg/mylv1 /tmp/users/
# df -h
Filesystem                Size  Used Avail Use% Mounted on
/dev/sda2                  49G  2.6G   44G   6% /
tmpfs                     491M     0  491M   0% /dev/shm
/dev/sda1                 243M   30M  201M  13% /boot
/dev/mapper/testvg-mylv1  6.9G  140M  6.5G   3% /tmp/users

確保文件沒有損壞
# cat fstab   

#
# /etc/fstab
# Created by anaconda on Thu Sep  8 18:07:56 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=9a4ecef6-d82c-471d-bed5-4187746129c4 /                       ext4    defaults        1 1
UUID=34e5f6cf-c318-4048-ae39-cd3b2490de6d /boot                   ext4    defaults        1 2
UUID=6b42d8fc-e214-48c6-9faf-c0bf08955c96 swap                    swap    defaults        0 0
UUID=d49020d0-abe0-4ff3-b289-8c10b90e8362 /media                  ext4    defaults        0 0 
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/testvg/mylv1	/tmp/users		ext4	defaults,acl	0 0


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

# lvcreate -L 7G -p r -s -n snap_mylv1 /dev/testvg/mylv1

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

(0)
chenzhijiechenzhijie
上一篇 2016-11-14
下一篇 2016-11-14

相關推薦

  • 命令read

    read命令是一個bash命令,它用于從鍵盤或標準輸入中讀取文本.我們可以使用read以交互的形式讀取來自用戶的輸入.并且read還提供一種不需要按回車就能夠輸入參數的方法. read可以從標準輸入中讀取單獨的一行,或者使用-u選項,從文件描述符FD中讀取.并且這單獨的行被分隔成多個域,第一個詞被賦值給第一個變量,第一個賦值給第二個變量,以此類推,直到剩下的…

    Linux干貨 2016-08-12
  • linux文件管理

    目錄創建刪除,軟硬鏈接的區別和注意,file命令的使用,工作中遇到一些情況的處理方法

    2017-11-18
  • AWK基礎用法

    AWK: print 例子:給沒個/etc/passwd下的用戶都打招呼hello 答案: awk ‘{print “hello:”$1}’ /etc/passwd 內建變量 FS : 輸入分隔符 OFS: 輸出分隔符 RS : 行輸入分隔符 ORS: 行輸出分割符 NF : 字段數 NR : 行號數 FNR: 每個文件的行號數 ARGC: 參數個數 ARG…

    Linux干貨 2017-05-22
  • 用戶與組

    一、用戶與組的概念 1、Linux多用戶,多任務的特性    Linux是多用戶多任務操作系統,多用戶多任務就是可在系統上建多個用戶,多個用戶可同一時間同一個系統互不影執行的響各自不同的任務。例如linux服務器上有root、www、ftp,四個用戶。同一時間內,root用戶在查看系統日志,管理維護系統,www用戶在修改自己的網頁程序,f…

    Linux干貨 2016-10-25
  • N22-第九周作業

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash # declare -i log_user declare -i notlog_user while read&n…

    Linux干貨 2016-10-24
  • 根DNS域名解析的實現

    一、實現從根,com,rj.com 模擬互聯網的DNS架構 DNS(Domain Name System,域名系統),因特網上作為域名和IP地址相互映射的一個分布式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。 接下來就一起開始搭建吧 首先,我們需要計劃好實驗環境,包括實驗的步驟思路 1)實驗環境(最好是畫圖展示,能使思路清…

    2017-04-25
欧美性久久久久