馬哥教育網絡班21期第七周作業

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

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

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

[root@localhost ~]# mke2fs -t ext4 -b 2048 -m 2 -L 'MYDATA' /dev/sdd
[root@localhost ~]# tune2fs -o acl /dev/sdd[root@localhost ~]# mkdir -pv /data/mydata
[root@localhost ~]# mount -o acl,noexec,noatime /dev/sdd /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
# free -m

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

#!/bin/bash
#
fdisk -l | grep ^"Disk /dev/[sh]d[a-z]" | cut -d"/" -f 3 | cut -d: -f1
    for i in $(fdisk -l | grep ^"/dev/[sh]d[a-z][0-9]\?" | cut -d' ' -f1) ;do        
    df -h $i | grep "/.*$"
done


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

RAID Level 名稱 磁盤數 可用空間 可靠性 I/O能力
RAIDO 條帶卷 >=2 100% 1/N 讀寫能力提升
RAID1 鏡像卷 >=2 50% 可允許一塊磁盤故障
RAID4 固定校驗盤 >=3 N-1 可允許一塊磁盤故障 讀寫能力提升
RAID5 分布式校驗盤 >=3 N-1 可允許一塊磁盤故障 讀寫能力提升
RAID6 校驗碼存兩份 >=4 N-2 可允同時故障兩塊盤 讀寫能力提升
RAID01 raid0+raid1 >=4 50% 可允許一塊磁盤故障 讀寫能力提升
RAID10 raid1+raid0 >=4 50% 同組raid1可故障一塊 讀寫能力提升

5、 創建一個大小為10G的RAID1,要求有一個空閑盤,而且CHUNK大小為128k;[root@localhost ~]# mdadm -C /dev/md0 -c 128 -x1 -n2 -l1 -a yes /dev/sd[b-d]6、 創建一個大小為4G的RAID5設備,chunk大小為256k,格式化ext4文件系統,要求可開機自動掛載至/backup目錄,而且不更新訪問時間戳,且支持acl功能;

[root@localhost ~]# mdadm -C /dev/md0 -n3 -l5 -a yes -c 256 /dev/sd[b-d]
[root@localhost ~]# mkfs.ext4 /dev/md0
[root@localhost ~]# vim /etc/fstab
新增一行
UUID=f9ae0ca3-1c85-4715-a6c5-68da5bdaa838 /backup ext4 noatime,acl 0 0


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

#!/bin/bash
#
if [ $# -eq 0 ];then       
    echo "please give a file name!"       
    exit 3
fi
for i in $@;do      
    echo "$i have $(wc -l $i | cut -d" " -f1) lines."
done
echo "The total of $# file their statistics the number of rows"


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

#!/bin/bash#if [ $# -lt 2 ];then     
echo "please give two user name!"     
exit 3
fi
for i in $@;do     
useradd $i && echo "$i" | passwd --stdin $i &> /dev/null        
let usersum++doneecho "創建了$#個用戶"

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

#!/bin/bash
#
declare -i sum=0
for ((i=1;i<=20;i++));do        
    useradd visitor$i        
echo "useradd visitor$i success!"        
sum+=$(id -u visitor$i)doneecho "all user uid 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 -c '^#' $i )    
    sum2+=$( grep -c '^[[:space:]]*$' $i )
done
echo "#start line number: $sum1"echo "space line number: $sum2"~


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

#!/bin/bash
#
cat /etc/passwd | grep "/bin/bash$" | cut -d: -f1,3
uuid=$(cat /etc/passwd | grep "/bin/bash$" | cut -d: -f3)
declare -i sum=0
for i in $uuid;do        
let sum+=$idoneecho "uuid sum=$sum"


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

#!/bin/bash
#
declare -i user=0
name=`cut -d: -f1 /etc/passwd`for i in $user;do     
    uid=`echo $i | cut -d: -f3`     
    user=`echo $i |cut -d: -f1`     
echo "$user UID is $uid"     
let sum+=$uiddoneecho "有$sum個此類用戶"


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

1、添加磁盤并修改磁盤類型為8e linux LVM
[root@localhost ~]# fdisk -l | grep /dev/sd
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
/dev/sda1   *        2048      616447      307200   83  Linux
/dev/sda2          616448     2715647     1049600   82  Linux swap / Solaris
/dev/sda3         2715648    41943039    19613696   83  Linux
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
/dev/sdb1            2048    20971519    10484736   8e  Linux LVM
Disk /dev/sdc: 10.7 GB, 10737418240 bytes, 20971520 sectors
/dev/sdc1            2048    20971519    10484736   8e  Linux LVM
Disk /dev/sdd: 10.7 GB, 10737418240 bytes, 20971520 sectors
/dev/sdd1            2048    20971519    10484736   8e  Linux LVM
2、創建PV
 pvcreate /dev/sd{b,c,d}1
[root@localhost ~]# pvs
  PV         VG   Fmt  Attr PSize PFree
  /dev/sdb1  myvg lvm2 a--  9.99g 9.99g
  /dev/sdc1  myvg lvm2 a--  9.99g 9.99g
  /dev/sdd1  myvg lvm2 a--  9.99g 9.99g
3、創建VG并設定PE為8M大小
vgcreate myvg -s 8 /dev/sd{b,c,d}1
[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  myvg   3   0   0 wz--n- 29.98g 29.98g
4、創建LV 名字為mylv1
[root@localhost ~]# lvcreate -n mylv1 -L 5G myvg
5、格式化
[root@localhost ~]# mkfs.ext4 /dev/myvg/mylv1
6、掛載
mount /dev/myvg/mylv1 /users
vim /etc/fstab
/dev/myvg/mylv1 /users ext4 acl 0 0

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

#useradd magedu -d /users/magedu#su magedu
#cp -rf /etc/skel/.* /users/magedu


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

[root@localhost ~]# lvextend -L +9G /dev/myvg/mylv1
[root@localhost ~]# resize2fs /dev/myvg/mylv1
[root@localhost ~]# df -lh /dev/myvg/mylv1
Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/myvg-mylv1   14G   56M   13G   1% /users
[root@localhost ~]# ls /users/magedu/
abrt                       cups                        gshadow         machine-id                prelink.conf.d    shells
adjtime                    cupshelpers                 gshadow-        magic                     printcap          smartmontools
......

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

[root@llww3317 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        18G  3.8G   13G  23% /
tmpfs           499M   80K  498M   1% /dev/shm
/dev/sda1       190M   34M  147M  19% /boot
[root@llww3317 ~]# mount /dev/myvg/mylv1 /data/mydata
[root@llww3317 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3              18G  3.8G   13G  23% /
tmpfs                 499M   80K  498M   1% /dev/shm
/dev/sda1             190M   34M  147M  19% /boot
/dev/mapper/myvg-mylv1
                      8.8G   12M  8.3G   1% /data/mydata
[root@llww3317 ~]# cp /etc/issue /data/mydata
[root@llww3317 ~]# umount /dev/myvg/mylv1
[root@llww3317 ~]# e2fsck -f /dev/myvg/mylv1
e2fsck 1.41.12 (17-May-2010)
第一步: 檢查inode,塊,和大小
第二步: 檢查目錄結構
第3步: 檢查目錄連接性
Pass 4: Checking reference counts
第5步: 檢查簇概要信息
/dev/myvg/mylv1: 12/589824 files (0.0% non-contiguous), 72672/2359296 blocks
[root@llww3317 ~]# resize2fs /dev/myvg/mylv1 7G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/mylv1 to 1835008 (4k) blocks.
The filesystem on /dev/myvg/mylv1 is now 1835008 blocks long.
[root@llww3317 ~]# lvreduce -L 7G /dev/myvg/mylv1
  WARNING: Reducing active logical volume to 7.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce myvg/mylv1? [y/n]: y
  Size of logical volume myvg/mylv1 changed from 9.00 GiB (1152 extents) to 7.00 GiB (896 extents).
  Logical volume mylv1 successfully resized.
[root@llww3317 ~]# mount /dev/myvg/mylv1 /data/mydata
[root@llww3317 ~]# more /data/mydata/issue 
CentOS release 6.8 (Final)
Kernel \r on an \m

17、對mylv1創建快照,并通過備份數據;要求保留原有的屬主屬組等信息;lvcreate -L 2G -s -n lv1back/dev/myvg/mylv1

lvcreate -L 2G -s -n lv1back/dev/myvg/mylv1

原創文章,作者:N21-chenggb,如若轉載,請注明出處:http://www.www58058.com/50205

(0)
N21-chenggbN21-chenggb
上一篇 2016-10-09
下一篇 2016-10-09

相關推薦

  • Linux中一些常用的命令(一)

    ls命令 ls命令:用來列出當前目錄的內容或指定目錄,是使用頻率較高的命令 -l:以長格式顯示目錄下的內容列表。輸出的信息從左到右依次包括文件名,文件類型、權限模式、硬連接數、所有者、組、文件大小和文件的最后修改時間等 -a:列出所有隱藏文件和目錄 -h:以人類可讀的方式將文件或者目錄大小顯示出來 -R:把當前目錄下的目錄的所有內容列出來(遞歸) -d:顯示…

    Linux干貨 2017-03-30
  • 用戶操作詳解(附圖)

                    關于用戶和組的基本操作命令     在linux的操作系統中,對于用戶以及組的配置是及其常用的和重要的,其中包括了對于用戶的添加,刪除以及修改用戶的…

    Linux干貨 2016-08-05
  • N26-博客作業-week2

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。   cp:copy 復制文件和路徑 cp [OPTION]… [-T] SOURCE DEST cp [OPTION]… SOURCE… DIRECTORY cp [OPTION]… -t DIRECTORY SOURCE&…

    Linux干貨 2017-02-12
  • CentOS 7和CentOS 6 使用gpg工具實現公鑰加密和解密

    運行環境: [root@Shining ~]# uname -a Linux Shining.ACG 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x…

    Linux干貨 2016-12-01
  • 關于大型網站技術演進的思考(二):存儲的瓶頸(2)

    原文出處: 夏天的森林   上篇里我講到某些網站在高并發下會報出503錯誤,503錯誤的含義是指網站服務端暫時無法提供服務的含義,503還表達了網站服務端現在有問題但是以后可能會提供正常的服務,對http協議熟悉的人都知道,5開頭的響應碼表達了服務端出現了問題,在我們開發測試時候最為常見的是500錯誤,500代表的含義是服務端程…

    2015-03-11
  • Python之入門篇

    一、環境準備 環境準備 –> pyenv (安裝python解釋器,管理Python版本,管理python虛擬環境) https://github.com/pyenv/pyenv https://github.com/yyuu/pyenv-installer # yum -y install git # curl -L https://ra…

    Linux干貨 2015-02-07

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-10-24 22:03

    1、注意腳本的排版格式。
    2、可以嘗試更多方法要實現同一個問題。

欧美性久久久久