1、創建一個10G分區,并格式為ext4文件系統;
(1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;
[root@wlm ~]# fdisk /dev/sdb #將/dev/sdb進行分區操作 Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0x2f796e2b. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) 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 #n代表創建新分區 Command action e extended p primary partition (1-4) p #主分區 Partition number (1-4): 1 #分區NO.為1 First cylinder (1-2610, default 1): #默認從第一個柱面開始 Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +10G #大小為10G+ Command (m for help): w #保存退出 The partition table has been altered! [root@wlm ~]# mke2fs -t ext4 -b 2048 -L MYDATA -m 2 /dev/sdb1 #block大小為2048, 預留空間百分比為2, 卷標為MYDATA [root@wlm ~]# tune2fs -o acl /dev/sdb1 #默認掛載屬性包含acl
(2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳;
[root@wlm ~]# mount -o noexec,noatime /dev/sdb1 /data/mydata
2、創建一個大小為1G的swap分區,并創建好文件系統,并啟用之;
[root@wlm ~]# fdisk /dev/sdb #從/dev/sdb磁盤進行分區 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 #創建分區 Command action e extended p primary partition (1-4) p #主分區 Partition number (1-4): 2 #第二個分區 First cylinder (1307-2610, default 1307): Using default value 1307 Last cylinder, +cylinders or +size{K,M,G} (1307-2610, default 2610): +1G #大小為1G Command (m for help): t #更改分區類型,默認為83 Partition number (1-4): 2 #對第二塊磁盤進行操作 Hex code (type L to list codes): 82 #分區類型為82(swap) Changed system type of partition 2 to 82 (Linux swap / Solaris) Command (m for help): w #保存退出 The partition table has been altered! [root@wlm ~]# partx -a /dev/sdb #強制內核重讀磁盤分區信息 [root@wlm ~]# mkswap /dev/sdb2 [root@wlm ~]# swapon /dev/sdb2 #并創建好文件系統,并啟用
3、寫一個腳本
(1)、獲取并列出當前系統上的所有磁盤設備;
(2)、顯示每個磁盤設備上每個分區相關的空間使用信息;
#!/bin/bash # fdisk -l /dev/s[dh][a-z]|grep -o "Disk /dev/s[hd][a-z]"|cut -d" " -f2 echo -e "\n" df -h
4、總結RAID的各個級別及其組合方式和性能的不同;
RAID0 讀、寫性能提升; 可用空間:N*min(S1,S2,...) 無容錯能力 最少磁盤數:2, 2+ RAID1 讀性能提升、寫性能略有下降; 可用空間:1*min(S1,S2,...) 有冗余能力 最少磁盤數:2, 2+ RAID-5: 讀、寫性能提升 可用空間:(N-1)*min(S1,S2,...) 有容錯能力:1塊磁盤 最少磁盤數:3, 3+ RAID-6: 讀、寫性能提升 可用空間:(N-2)*min(S1,S2,...) 有容錯能力:2塊磁盤 最少磁盤數:4, 4+ 混合類型 RAID-10: 讀、寫性能提升 可用空間:N*min(S1,S2,...)/2 有容錯能力:每組鏡像最多只能壞一塊; 最少磁盤數:4, 4+ RAID-01: 讀、寫能力提升 可用空間:N*min(S1,S2,...)/2 有容錯能力:每組鏡像最多可壞三塊; 最少磁盤數:4, 4+ JBOD:Just a Bunch Of Disks 功能:將多塊磁盤的空間合并一個大的連續空間使用; 可用空間:sum(S1,S2,...)
5、創建一個大小為10G的RAID1,要求有一個空閑盤,而且CHUNK大小為128k;
# 首先創建這三個分區,/dev/sdb1 /dev/sdc1 /dev/sdd1 # mdadm -C /dev/md0 -n 2 -l 1 -c 128 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1
6、創建一個大小為4G的RAID5設備,chunk大小為256k,格式化ext4文件系統,要求可開機自動掛載至/backup目錄,而且不更新訪問時間戳,且支持acl功能;
首先創建3個2G分區,/dev/sdb1 /dev/sdc1 /dev/sdd1 # mdadm -C /dev/md1 -n 3 -l 5 -c 256 /dev/sdb2 /dev/sdc2 /dev/sdd2mke2fs -t ext4 /dev/md1 # vim /etc/fstab # /dev/md1 /backup ext4 noatime,acl 0 0
7、寫一個腳本
(1) 接受一個以上文件路徑作為參數;
(2) 顯示每個文件擁有的行數;
(3) 總結說明本次共為幾個文件統計了其行數;
#!/bin/bash # [ $# -eq 0 ] && echo "At least one path!" && exit 1 for i in $*; do echo "$i has $(wc -l $i | cut -d" " -f1) lines." done echo echo $#
8、寫一個腳本
(1) 傳遞兩個以上字符串當作用戶名;
(2) 創建這些用戶;且密碼同用戶名;
(3) 總結說明共創建了幾個用戶;
#!/bin/bash # if [ $# -eq 0 ]; then echo "At least one user." exit 1 fi declare -a users declare -i sum=0 for i in $*; do if id $i &>/dev/null; then echo "user $i has existed!" else useradd $i echo "$i" | passwd --stdin $i &>/dev/null users[${#users[*]}]=$i sum+=1 fi done [ ${#users[*]} -gt 0 ] && echo -e "You have add $sum users,\nThey are ${users[*]}"
9、寫一個腳本,新建20個用戶,visitor1-visitor20;計算他們的ID之和;
#!/bin/bash # declare -i sum=0 for i in {1..20}; do id visitor$i &>/dev/null && echo "visitor$i has existed!" || useradd visitor$i &>/dev/null && echo "Add visitor$i success!" let sum+=$(id -u visitor$i) let i++ done echo "SumID:$sum"
10、寫一腳本,分別統計/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#號開頭的行數之和,以及總的空白行數;
#!/bin/bash # declare -i lines_sum1=0 declare -i lines_sum2=0 lines_sum1=$(($(grep "^#" /etc/rc.d/rc.sysinit | wc -l)+$(grep "^#" /etc/rc.d/init.d/functions | wc -l)+$(grep "^#" /etc/fstab | wc -l))) lines_sum2=$(($(grep "^$" /etc/rc.d/rc.sysinit | wc -l)+$(grep "^$" /etc/rc.d/init.d/functions | wc -l)+$(grep "^$" /etc/fstab | wc -l))) echo "以#號開頭的行數之和為:$lines_sum1" echo "以#號開頭的行數之和為:$lines_sum2"
11、寫一個腳本,顯示當前系統上所有默認shell為bash的用戶的用戶名、UID以及此類所有用戶的UID之和;
使用awk來切割
#!/bin/bash declare -i id_sum=0 grep "bash$" /etc/passwd | awk -F: '{printf "Username: %-10s UID: %d\n",$1,$3}' for i in $(grep "bash$" /etc/passwd | awk -F: '{print $3}');do id_sum+=$i done echo "默認shell為bash的用戶的UID之和為:$id_sum"
使用cut切割
#!/bin/bash # declare -i sum=0 for i in $(egrep "(/bin/bash)$" /etc/passwd | cut -d: -f3); do let sum+=$i done echo "當前系統上所有默認shell為bash的用戶的用戶名、UID:$(egrep "(/bin/bash)$" /etc/passwd | cut -d: -f1,3)" echo "此類所有用戶的UID之和:$sum"
12、寫一個腳本,顯示當前系統上所有,擁有附加組的用戶的用戶名;并說明共有多少個此類用戶;
#!/bin/bash # declare -i count=0 for i in $(cat /etc/passwd | cut -d: -f1); do sum_groups=$(id -G $i | wc -w) if [ $sum_groups -gt 1 ]; then echo "$i has appand group." let count++ fi done echo "There are $count users has appand group."
13、創建一個由至少兩個物理卷組成的大小為20G的卷組VG;要求,PE大小為8M;而在卷組中創建一個大小為5G的邏輯卷mylv1,格式化為ext4文件系統,開機自動掛載至/users目錄,支持acl;
先在塊磁盤上分區,分別為/dev/sdb3和/dev/sdc3,然后創建成連個PV
以/dev/sdc3為例:
[root@wlm script_test]# fdisk /dev/sdc #對/dev/sdc磁盤進行操作 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 #創建新分區 Command action e extended p primary partition (1-4) p #主分區 Partition number (1-4): 3 #分區號 First cylinder (12-2610, default 12): Using default value 12 Last cylinder, +cylinders or +size{K,M,G} (12-2610, default 2610): +15G #15G大小 Command (m for help): w
將/dev/sdb3和/dev/sdc3創建成PV
[root@wlm script_test]# pvcreate /dev/sdb3 Physical volume "/dev/sdb3" successfully created [root@wlm script_test]# pvcreate /dev/sdc3 Physical volume "/dev/sdc3" successfully created [root@wlm script_test]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 vg_wlm lvm2 a-- 77.80g 0 /dev/sdb3 lvm2 --- 5.01g 5.01g /dev/sdc3 lvm2 --- 15.01g 15.01g
將兩個PV組成一個VG,PE大小為8M:
vg_wlm 1 1 0 wz--n- 77.80g 0 [root@wlm script_test]# vgcreate -s 8M myvg /dev/sd{b3,c3} Volume group "myvg" successfully created [root@wlm script_test]# vgs VG #PV #LV #SN Attr VSize VFree myvg 2 0 0 wz--n- 20.01g 20.01g vg_wlm 1 1 0 wz--n- 77.80g 0
在myvg中創建邏輯卷LV為5G的mylv1:
[root@wlm script_test]# lvcreate -L 5G -n mylv1 myvg Logical volume "mylv1" created. [root@wlm script_test]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert mylv1 myvg -wi-a----- 5.00g LogVol00 vg_wlm -wi-ao---- 77.80g [root@wlm script_test]# lvdisplay --- Logical volume --- LV Path /dev/myvg/mylv1 LV Name mylv1 VG Name myvg LV UUID H37byP-lYyu-muah-DrZF-VpPk-h9Ed-mNO7Gf LV Write Access read/write LV Creation host, time wlm, 2016-11-08 02:38:02 +0800 LV Status available # open 0 LV Size 5.00 GiB
對可用分區mylv1格式化并設置開機自動掛載:
[root@wlm script_test]# mkfs.ext4 /dev/myvg/mylv1 #在/etc/initab里添加: /dev/myvg/mylv1 /users ext4 defaults,acl 0 0 [root@wlm script_test]# mount -a [root@wlm script_test]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_wlm-LogVol00 77G 9.8G 63G 14% / tmpfs 431M 72K 431M 1% /dev/shm /dev/sda1 190M 90M 91M 50% /boot /dev/sdb1 9.8G 13M 9.6G 1% /data/mydata /dev/mapper/myvg-mylv1 4.8G 10M 4.6G 1% /mylv1 /dev/mapper/myvg-mylv1 4.8G 10M 4.6G 1% /users
14、新建用戶magedu;其家目錄為/users/magedu,而后su切換至此用戶,復制多個文件至家目錄;
[root@wlm script_test]# useradd -d /users/magedu magedu [root@wlm script_test]# su - magedu [magedu@wlm ~]$ cp /etc/networks /etc/my.cnf ./
15、擴展mylv1至9G,確保擴展完成后原有數據完全可用;
vg的物理邊界足夠大,可以直接擴展;
[root@wlm script_test]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_wlm-LogVol00 77G 9.8G 63G 14% / tmpfs 431M 72K 431M 1% /dev/shm /dev/sda1 190M 90M 91M 50% /boot /dev/sdb1 9.8G 13M 9.6G 1% /data/mydata /dev/mapper/myvg-mylv1 4.8G 11M 4.6G 1% /mylv1 /dev/mapper/myvg-mylv1 4.8G 11M 4.6G 1% /users [root@wlm script_test]# lvextend -L 9G /dev/myvg/mylv1 #注意,9G是擴展后的空間 Size of logical volume myvg/mylv1 changed from 5.00 GiB (640 extents) to 9.00 GiB (1152 extents). Logical volume mylv1 successfully resized [root@wlm script_test]# resize2fs /dev/myvg/mylv1 resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/myvg/mylv1 is mounted on /mylv1; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of /dev/myvg/mylv1 to 2359296 (4k) blocks. The filesystem on /dev/myvg/mylv1 is now 2359296 blocks long. [root@wlm script_test]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_wlm-LogVol00 77G 9.8G 63G 14% / tmpfs 431M 72K 431M 1% /dev/shm /dev/sda1 190M 90M 91M 50% /boot /dev/sdb1 9.8G 13M 9.6G 1% /data/mydata /dev/mapper/myvg-mylv1 8.8G 12M 8.3G 1% /mylv1 /dev/mapper/myvg-mylv1 8.8G 12M 8.3G 1% /users [magedu@wlm ~]$ ls my.cnf networks
16、縮減mylv1至7G,確保縮減完成后原有數據完全可用;
[root@wlm script_test]# umount /dev/myvg/mylv1 #卸載 [root@wlm script_test]# e2fsck -f /dev/myvg/mylv1 [root@wlm script_test]# resize2fs /dev/myvg/mylv1 7G #強制檢測文件系統并先縮減文件系統的大小 [root@wlm script_test]# lvreduce -L 7G /dev/myvg/mylv1 [root@wlm script_test]# mount -a #縮小lv的大小并重新掛載
17、對mylv1創建快照,并通過備份數據;要求保留原有的屬主屬組等信息;
快照卷和原卷必須在同一個VG上:
[root@wlm script_test]# lvcreate -L 20M -s -p r -n mylv1-snap /dev/myvg/mylv1 Rounding up size to full physical extent 24.00 MiB Logical volume "mylv1-snap" created.
掛載快照卷并查看:
[root@wlm magedu]# mount /dev/myvg/mylv1-snap /mnt/ [root@wlm ~]# cd /mnt/ [root@wlm mnt]# ls lost+found magedu
原創文章,作者:dawning,如若轉載,請注明出處:http://www.www58058.com/58278
可以加個qq嗎
@Old_Driver:可以,2986158667