1、創建一個10G分區,并格式為ext4文件系統;
(1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;
(2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳;
fdisk /dev/sdb 1、磁盤分區 [root@localhost ~]# fdisk /dev/sdb 歡迎使用 fdisk (util-linux 2.23.2)。 更改將停留在內存中,直到您決定將更改寫入磁盤。 使用寫入命令前請三思。 Device does not contain a recognized partition table 使用磁盤標識符 0x645f3764 創建新的 DOS 磁盤標簽。 命令(輸入 m 獲取幫助):n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p 分區號 (1-4,默認 1): 起始 扇區 (2048-20971519,默認為 2048): 將使用默認值 2048 Last 扇區, +扇區 or +size{K,M,G} (2048-20971519,默認為 20971519): 將使用默認值 20971519 分區 1 已設置為 Linux 類型,大小設為 10 GiB 命令(輸入 m 獲取幫助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盤。 2、通知內核重新讀取硬盤分區表 [root@localhost ~]# partx -a /dev/sdb [root@localhost ~]# cat /proc/partitions major minor #blocks name 8 0 125829120 sda 8 1 512000 sda1 8 2 125316096 sda2 8 16 10485760 sdb 8 17 10484736 sdb1 11 0 1048575 sr0 253 0 52428800 dm-0 253 1 2097152 dm-1 253 2 70721536 dm-2 3、格式化分區 [root@localhost ~]# mke2fs -t ext4 -b 2048 -m 2 -L 'MYDATA' /dev/sdb1 mke2fs 1.42.9 (28-Dec-2013) 文件系統標簽=MYDATA OS type: Linux 塊大小=2048 (log=1) 分塊大小=2048 (log=1) Stride=0 blocks, Stripe width=0 blocks 655360 inodes, 5242368 blocks 104847 blocks (2.00%) reserved for the super user 第一個數據塊=0 Maximum filesystem blocks=273678336 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 Allocating group tables: 完成 正在寫入inode表: 完成 Creating journal (32768 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 [root@localhost ~]# tune2fs -o acl /dev/sdb1 tune2fs 1.42.9 (28-Dec-2013) [root@localhost ~]# echo $? 0 4、掛載 [root@localhost ~]# mkdir -p /data/mydata/ [root@localhost ~]# mount -o noauto,noatime,acl /dev/sdb1 /data/mydata/
2、創建一個大小為1G的swap分區,并創建好文件系統,并啟用之;
1、創建交換分區 [root@localhost ~]# fdisk /dev/sdc 歡迎使用 fdisk (util-linux 2.23.2)。 更改將停留在內存中,直到您決定將更改寫入磁盤。 使用寫入命令前請三思。 Device does not contain a recognized partition table 使用磁盤標識符 0xa1cdd8bb 創建新的 DOS 磁盤標簽。 命令(輸入 m 獲取幫助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p 分區號 (1-4,默認 1): 起始 扇區 (2048-2097151,默認為 2048): 將使用默認值 2048 Last 扇區, +扇區 or +size{K,M,G} (2048-2097151,默認為 2097151): 將使用默認值 2097151 分區 1 已設置為 Linux 類型,大小設為 1023 MiB 命令(輸入 m 獲取幫助):m 命令操作 a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition g create a new empty GPT partition table G create an IRIX (SGI) partition table l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) 命令(輸入 m 獲取幫助):t 已選擇分區 1 Hex 代碼(輸入 L 列出所有代碼):82 已將分區“Linux”的類型更改為“Linux swap / Solaris” 命令(輸入 m 獲取幫助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盤。 2、通知內核重新讀取硬盤分區表 [root@localhost ~]# partx -a /dev/sdc [root@localhost ~]# cat /proc/partitions [root@localhost ~]# mkswap /dev/sdc1 正在設置交換空間版本 1,大小 = 1047548 KiB 無標簽,UUID=a6d304b5-9bb5-4a39-adc9-f8bbdfe1e746 [root@localhost ~]# free -m total used free shared buff/cache available Mem: 977 144 654 6 179 668 Swap: 3070 0 3070
3、寫一個腳本
(1)、獲取并列出當前系統上的所有磁盤設備;
(2)、顯示每個磁盤設備上每個分區相關的空間使用信息;
#!/bin/bash # i=1 fdisk -l /dev/hd[a-z] | grep "Disk /" for DevName in $(ls /dev/[s,h]d[a-z][1-9]);do if [ $i -eq 1 ] ;then df -h $Dev | awk -v FS=" " '{print $1,$2,$3,$4,$5,$6}' let i++ else df -h $DevName | grep -v "File" | awk -v =" " -v name=$Dev '{print name,$2,$3,$4,$5,$6}' fi done
4、總結RAID的各個級別及其組合方式和性能的不同;
raid-0:帶區卷 讀、寫性能提升; 可用空間:N*min(S1,S2,...)最小值 無容錯能力 最少磁盤數:2, 2+ RAID-1:鏡像卷 讀性能提升、寫性能略有下降; 可用空間: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+ JBOD:Just a Bunch Of Disks 功能:將多塊磁盤的空間合并一個大的連續空間使用; 可用空間:sum(S1,S2,...)
5、創建一個大小為10G的RAID1,要求有一個空閑盤,而且CHUNK大小為128k;
fdisk /dev/sdb 分區 mdadm -C /dev/md0 -n 2 -l 1 -c 128 -x 1 /dev/sdb{1,2,3} [root@localhost ~]# mdadm -D /dev/md0/dev/md0: Version : 1.2 Creation Time : Mon Aug 15 21:41:49 2016 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 : Mon Aug 15 21:42:42 2016 State : clean Active Devices : 2Working Devices : 3 Failed Devices : 0 Spare Devices : 1 Name : localhost.localdomain:0 (local to host localhost.localdomain) UUID : ef3583dc:ef361cd0:12593e47:8bad609a 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、創建一個大小為4G的RAID5設備,chunk大小為256k,格式化ext4文件系統,要求可開機自動掛載至/backup目錄,而且不更新訪問時間戳,且支持acl功能;
disk /dev/sdb 分區 mdadm -C /dev/md0 -n 3 -l 5 -c 256 /dev/sdb{1,2,3} mkfs.ext4 /dev/md0 echo "/dev/md0 /backup ext4 defaults,acl,nodiratime 0 0" >> /etc/fstab
-
7、寫一個腳本
-
(1) 接受一個以上文件路徑作為參數;
-
(2) 顯示每個文件擁有的行數;
-
(3) 總結說明本次共為幾個文件統計了其行數;
#!/bin/bash # if [ $# -eq 0 ];then echo “請輸入文件名:” exit 0 fi for i in $* do echo "$i have $(wc -l $i | cut -d' ' -f1) lines" done echo "本次共為$#個文件統計了其行數!"
-
8、寫一個腳本
-
(1) 傳遞兩個以上字符串當作用戶名;
-
(2) 創建這些用戶;且密碼同用戶名;
-
(3) 總結說明共創建了幾個用戶;
#!/bin/bash #if [ $# -lt 2 ];thenecho "請輸入兩個以上的參數:"exit 0fi for i in $*;do if id "$i" &>/dev/null;then echo “當前用戶已存在” exit 1 else useradd "$i" fiif [ $? -eq 0 ];then echo "$i" | passwd --stdin "$i" &> /dev/null echo "用戶創建成功:" exit 2 fi done echo "Total Add $# users !"
9、寫一個腳本,新建20個用戶,visitor1-visitor20;計算他們的ID之和;
#!/bin/bash # declare -i tid for i in {1..10};do if id user$i &>/dev/null;then echo "user$i exists." else useradd user$i let tid+=$(id -u user$i) fi if [ $? -eq 0 ];then echo "user$i" | passwd --stadin user$i &> /dev/null echo "Add user$i finished." fi done echo "Total id is $tid !"
10、寫一腳本,分別統計/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#號開頭的行數之和,以及總的空白行數;
#!/bin/bash # declare -i li declare -i line for i in {/etc/rc.d/rc.sysinit,/etc/rc.d/init.d/functions,/etc/fstab};do let li+=$(grep ^# $i | wc -l | cut -d' ' -f1) let line+=$(grep ^[[:space:]]*$ $i | wc -l | cut -d' ' -f1) done echo "文件中以#號開頭的行數之和:$li" echo "總的空白行數:$line"
11、寫一個腳本,顯示當前系統上所有默認shell為bash的用戶的用戶名、UID以及此類所有用戶的UID之和;
#!/bin/bash # declare -i uid for i in $(grep bash$ /etc/passwd | cut -d: -f1);do echo "$i,`id -u $i`" let uid+=`id -u $i` done echo "Total uid is $uid !"
12、寫一個腳本,顯示當前系統上所有,擁有附加組的用戶的用戶名;并說明共有多少個此類用戶;
#!/bin/bash # declare -i NUM for i in `grep '[^:]$' /etc/group | cut -d':' -f1`; do echo $i let "NUM++" done echo "Number of user: $NUM"
13、創建一個由至少兩個物理卷組成的大小為20G的卷組;要求,PE大小為8M;而在卷組中創建一個大小為5G的邏輯卷mylv1,格式化為ext4文件系統,開機自動掛載至/users目錄,支持acl;
pvcreate /dev/sdb{5,6,7,8} ; vgcreate -s 8m myvg01 /dev/sdb{5,6,7,8}; lvcreate -L 5G -n mylv01 myvg01; mke2fs -t ext4 /dev/myvg01/mylv01 mount -o acl /dev/myvg01/mylv01 /user; echo "/dev/myvg01 /user ext4 defaults,acl 0 0" >> /etc/fstab
14、新建用戶magedu;其家目錄為/users/magedu,而后su切換至此用戶,復制多個文件至家目錄;
if id magedu &>/dev/null;then echo "user$i exists." else useradd -d /users/magedu magedu fi if [ $? -eq 0 ];then echo "magedu" | passwd --stadin magedu &> /dev/null echo "Add user$i finished." fi su - magedu cp /etc/passwd /etc/fstab /users/magedu
15、擴展mylv1至9G,確保擴展完成后原有數據完全可用;
lvextend -L +4G /dev/myvg01/mylv01 resize2fs /dev/myvg01/mylv01
16、縮減mylv1至7G,確??s減完成后原有數據完全可用;
umount /dev/myvg01/mylv01; e2fsck /dev/myvg01/mylv01 resize2fs /dev/myvg01/mylv01;lvreduce -L -2G /dev/myvg01/mylv01
17、對mylv1創建快照,并通過備份數據;要求保留原有的屬主屬組等信息;
lvcreate -L 100m -p r -s -n snapmylv01 /dev/myvg01/mylv01
原創文章,作者:N21_ Dominic,如若轉載,請注明出處:http://www.www58058.com/37573
寫的很好,排版也很棒,加油,創建swap的時候是不是少了一步,第8題不對