1、創建一個10G分區,并格式為ext4文件系統;
-
(1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;
-
(2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳;
[root@localhost ~]# fdisk /dev/sdb Command (m for help): n Partition number (1-4): 1 First cylinder (1-7832, default 1): 1 Last cylinder, +cylinders or +size{K,M,G} (1-7832, default 7832): +10G Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@localhost ~]# partx -a /dev/sdb [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:00 40G 0 disk ├─sda1 8:10 29.3G 0 part / └─sda2 8:202G 0 part [SWAP] sdb 8:16 0 60G 0 disk └─sdb1 8:17 0 10G 0 part sr0 11:01 3.5G 0 rom
(1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;
[root@localhost ~]# mke2fs -t ext4 -b 2048 -m 2 -L 'MYDATA' /dev/sdb1 [root@localhost ~]# tune2fs -o acl /dev/sdb1
(2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳;
[root@localhost ~]# mkdir -pv /data/mydata [root@localhost ~]# mount -o noexec,noatime /dev/sdb1 /data/mydata
2、創建一個大小為1G的swap分區,并創建好文件系統,并啟用之;
[root@localhost ~]# fdisk /dev/sdb Command (m for help): n Partition number (1-4): 2 First cylinder (1307-7832, default 1307): 1307 Last cylinder, +cylinders or +size{K,M,G} (1307-7832, default 7832): +1G Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): 82 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@localhost ~]# partx -a /dev/sdb [root@localhost ~]# mkswap /dev/sdb2 [root@localhost ~]# swapon /dev/sdb2
3、寫一個腳本
-
(1)、獲取并列出當前系統上的所有磁盤設備;
-
(2)、顯示每個磁盤設備上每個分區相關的空間使用信息;
[root@localhost ~]# cat disk.sh #!/bin/bash # for i in `lsblk | egrep '^(sd|hd)' | cut -d' ' -f1`;do echo Disk:$i echo Disk Space:`lsblk /dev/$i | egrep '(sd|hd)[[:alpha:]][[:digit:]]'` done
4、總結RAID的各個級別及其組合方式和性能的不同;
RAID 0(條帶模式)
-
這種模式下,RAID 會將磁盤分割成等量大小的區塊。存儲數據時,將數據交錯存儲到多塊磁盤上去。
-
性能表現:讀、寫性能提升
-
冗余能力(容錯能力):無
-
空間利用率:N*min(S1,S2,…)
RAID 1(鏡像模式)
-
這種模式下,每組至少兩顆磁盤,一塊用來存儲數據,另一塊用來存儲數據的備份。
-
性能表現:讀性能提升,寫性能下降
-
冗余能力:有
-
空間利用率:1*min(S1,S2,…)
RAID 5(循環校驗)
-
RAID 5 至少需要 3 顆硬盤才能組成。它的寫入特點類似于 RAID 0,不同的是在每個循環寫入的過程中,在每顆磁盤中會加入一個校驗位。當寫入硬盤的數據損壞后,可以利用校驗位進行數據的恢復。如果單獨使用一顆磁盤存儲 校驗位,會大大增加它的讀寫負擔,所以校驗位是輪流寫入每顆硬盤的。
-
性能表現:讀、寫性能提升
-
冗余能力:有
-
空間利用率:(N-1)*min(S1,S2,…)
RAID 0+1
-
這種模式是 RAID 0 和 RAID 1 的組合。首先用兩顆磁盤組成 RAID 0,共設定兩組,然后將兩組 RAID 0組合成 RAID 1。
-
性能表現:讀、寫性能提升
-
冗余能力:有
-
空間利用率:N*min(S1,S2,…)/2
RAID 1+0
-
這種模式就是先組合成 RAID 1,然后在組合成 RAID 0。
-
性能表現:讀、寫性能提升
-
冗余能力:有
– 空間利用率:N*min(S1,S2,…)/2
5、創建一個大小為10G的RAID1,要求有一個空閑盤,而且CHUNK大小為128k;
[root@localhost ~]# mdadm -C /dev/md1 -n2 -l1 -a yes -x1 -c128 /dev/sdb1 /dev/sdb2 /dev/sdb3 [root@localhost ~]# mdadm -D /dev/md1 /dev/md1: Version : 1.2 Creation Time : Fri Oct 28 16:00:46 2016 Raid Level : raid1 Array Size : 10482112 (10.00 GiB 10.73 GB) Used Dev Size : 10482112 (10.00 GiB 10.73 GB) Raid Devices : 2 Total Devices : 3 Persistence : Superblock is persistent Update Time : Fri Oct 28 16:01:30 2016 State : clean, resyncing Active Devices : 2 Working Devices : 3 Failed Devices : 0 Spare Devices : 1 Resync Status : 84% complete Name : localhost:1 (local to host localhost) UUID : ebde693e:fb4f8293:9c3ed012:ee5fb97e Events : 13 Number Major Minor RaidDevice State 0 8 170 active sync /dev/sdb1 1 8 181 active sync /dev/sdb2 2 8 19- spare /dev/sdb3
6、創建一個大小為4G的RAID5設備,chunk大小為256k,格式化ext4文件系統,要求可開機自動掛載至/backup目錄,而且不更新訪問時間戳,且支持acl功能;
[root@localhost ~]# mdadm -C /dev/md2 -n3 -l5 -c256 /dev/sdb1 /dev/sdb2 /dev/sdb3 [root@localhost ~]# mdadm -D /dev/md2 /dev/md2: Version : 1.2 Creation Time : Fri Oct 28 16:11:03 2016 Raid Level : raid5 Array Size : 8393216 (8.00 GiB 8.59 GB) Used Dev Size : 4196608 (4.00 GiB 4.30 GB) Raid Devices : 3 Total Devices : 3 Persistence : Superblock is persistent Update Time : Fri Oct 28 16:11:16 2016 State : clean, degraded, recovering Active Devices : 2 Working Devices : 3 Failed Devices : 0 Spare Devices : 1 Layout : left-symmetric Chunk Size : 256K Rebuild Status : 32% complete Name : localhost:2 (local to host localhost) UUID : bf022f15:66dbe3d7:93db49c1:bcc40c46 Events : 6 Number Major Minor RaidDevice State 0 8 170 active sync /dev/sdb1 1 8 181 active sync /dev/sdb2 3 8 192 spare rebuilding /dev/sdb3 [root@localhost ~]# mkfs.ext4 /dev/md2 [root@localhost ~]# mkdir /backup [root@localhost ~]# vim /etc/fstab /dev/md2 /backup ext4notime,acl 0 0
7、寫一個腳本
-
(1) 接受一個以上文件路徑作為參數;
-
(2) 顯示每個文件擁有的行數;
-
(3) 總結說明本次共為幾個文件統計了其行數;
[root@localhost ~]# cat filecount.sh #!/bin/bash # declare -i count=0 if [ $# -lt 1 ];then echo "Usage:$0 /path/to/file1 /path/to/file2 ...." exit 1 fi for i in $*;do [ -f $i ] && echo "$i have lines:`wc -l $i | cut -d' ' -f1`" [ $? -eq 0 ] && count=$[$count+1] || echo "$i not file" done echo "Files total:$count"
8、寫一個腳本
-
(1) 傳遞兩個以上字符串當作用戶名;
-
(2) 創建這些用戶;且密碼同用戶名;
-
(3) 總結說明共創建了幾個用戶;
[root@localhost ~]# cat useradd.sh #!/bin/bash # declare -i count=0 if [ $# -lt 2 ];then echo "Usage:$0 user1 user2" exit 1 fi for i in $*;do ! id $i &>/dev/null && useradd $i && echo $i | passwd --stdin $i &>/dev/null && count=$[$count+1] [ $? -eq 0 ] && echo "User $i added." || echo "User $i exists." done echo "Create users:$count"
9、寫一個腳本,新建20個用戶,visitor1-visitor20;計算他們的ID之和;
[root@localhost ~]# cat userid.sh #!/bin/bash # declare -i idcount=0 for i in {1..20};do ! id visitor$i &>/dev/null && useradd visitor$i && echo User visitor$i add. [ $? -eq 0 ] && let idcount=$idcount+$(id -u visitor$i) || echo User visitor$i exists. done echo ID count:$idcount.
10、寫一腳本,分別統計/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#號開頭的行數之和,以及總的空白行數;
[root@localhost ~]# cat colcount.sh #!/bin/bash # declare -i spacecount=0 declare -i jingcount=0 file1=/etc/rc.d/rc.sysinit file2=/etc/rc.d/init.d/functions file3=/etc/fstab for i in {$file1,$file2,$file3};do [ -f $i ] && let jingcount+=$(grep ^# $i | wc -l) || echo $i no exists. [ -f $i ] && let spacecount+=$(grep ^$ $i | wc -l) || echo $i no exists. done echo "Spacecount totall:$spacecount" echo "# count totall:$jingcount"
11、寫一個腳本,顯示當前系統上所有默認shell為bash的用戶的用戶名、UID以及此類所有用戶的UID之和;
[root@localhost ~]# cat usershell.sh #!/bin/bash # declare -i count=0 for i in `grep bash$ /etc/passwd | cut -d: -f1,3`;do echo $i let count+=$[ `echo $i | cut -d: -f2` ] done echo "UID count:$count"
12、寫一個腳本,顯示當前系統上所有,擁有附加組的用戶的用戶名;并說明共有多少個此類用戶;
[root@localhost ~]# cat group.sh #!/bin/bash # declare -i count=0 for i in `cut -d: -f1 /etc/passwd`;do id $i | grep , &>/dev/null && echo $i && let count++ done echo "User count:$count"
13、創建一個由至少兩個物理卷組成的大小為20G的卷組;要求,PE大小為8M;而在卷組中創建一個大小為5G的邏輯卷mylv1,格式化為ext4文件系統,開機自動掛載至/users目錄,支持acl;
[root@localhost ~]# fdisk /dev/sdb Device Boot Start End Blocks Id System /dev/sdb1 1130610490413+ 8e Linux LVM /dev/sdb21307261210490445 8e Linux LVM [root@localhost ~]# pvcreate /dev/sdb1 /dev/sdb2 Physical volume "/dev/sdb1" successfully created Physical volume "/dev/sdb2" successfully created [root@localhost ~]# vgcreate -s 8M vg1 /dev/sdb1 /dev/sdb2 Volume group "vg1" successfully created [root@localhost ~]# lvcreate -n mylv1 -L 5G vg1 Logical volume "mylv1" created [root@localhost ~]# mkfs.ext4 /dev/vg1/mylv1 [root@localhost ~]# mkdir /users /dev/vg1/mylv1 /users ext4acl 0 0
14、新建用戶magedu;其家目錄為/users/magedu,而后su切換至此用戶,復制多個文件至家目錄;
[root@localhost ~]# useradd -d /users/magedu/ magedu [magedu@localhost ~]$ cp /etc/fstab /etc/inittab ./
15、擴展mylv1至9G,確保擴展完成后原有數據完全可用;
[root@localhost ~]# lvextend -L 9G /dev/vg1/mylv1 [root@localhost ~]# resize2fs /dev/vg1/mylv1
16、縮減mylv1至7G,確保縮減完成后原有數據完全可用;
[root@localhost ~]# umount /dev/vg1/mylv1 [root@localhost ~]# e2fsck -f /dev/vg1/mylv1 [root@localhost ~]# resize2fs /dev/vg1/mylv1 7G [root@localhost ~]# lvreduce -L 7G /dev/vg1/mylv1 [root@localhost ~]# mount /dev/vg1/mylv1 /users
17、對mylv1創建快照,并通過備份數據;要求保留原有的屬主屬組等信息;
[root@localhost ~]# lvcreate -L 7G -p r -s -n mylv1_snapshot /dev/vg1/mylv1
原創文章,作者:N27_jiangyefan,如若轉載,請注明出處:http://www.www58058.com/85207