1、創建一個10G分區,并格式為ext4文件系統;
(1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;
(2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳;
# fdisk /dev/sda
# mkfs.ext4 -b 2048 -m 2 -L MYDATA /dev/sda5
# mount -o noexec,acl,noatime /dev/sda5 /data/mydata
2、創建一個大小為1G的swap分區,并創建好文件系統,并啟用之;
# fdisk /dev/sda
# mkswap /dev/sda6
# swapon /dev/sda6
3、寫一個腳本
(1)、獲取并列出當前系統上的所有磁盤設備;
(2)、顯示每個磁盤設備上每個分區相關的空間使用信息;
#!/bin/bash
echo ” (1)、獲取并列出當前系統上的所有磁盤設備;”
devs=`ls /dev/[sh]d[a-z]`
echo $devs
echo ” (2)、顯示每個磁盤設備上每個分區相關的空間使用信息;”
for i in `fdisk -l $devs | grep -o “^/dev/[sh]d[a-z][[:digit:]]\>”`;do
df -h $i
done
4、總結RAID的各個級別及其組合方式和性能的不同;
RAID0:將多塊硬盤組合成一塊硬盤使用,讀寫性能都有提升,磁盤利用率100%,無冗余能力,至少需要2塊硬盤;
RAID1:將數據存儲兩份,讀能力有提升,寫能力下降,磁盤利用率50%,有冗余能力,至少需要兩塊硬盤
RAID5:將數據拆分存儲并加入校驗碼技術,讀寫能力均有提升,磁盤利用率為 (磁盤數-1)/磁盤數,最多允許壞一塊硬盤,至少需要3塊硬盤;
RAID10:將磁盤先做raid1后再做raid0,讀寫能力均有提升,磁盤利用率為50%,每組最多允許壞一塊硬盤,至少需要4塊硬盤。
5、創建一個大小為10G的RAID1,要求有一個空閑盤,而且CHUNK大小為128k;
# fdisk /dev/sda
# mdadm -C /dev/md128 -n 2 -x 1 -c 128 -l 1 /dev/sda{5,6,7}
6、創建一個大小為4G的RAID5設備,chunk大小為256k,格式化ext4文件系統,要求可開機自動掛載至/backup目錄,而且不更新訪問時間戳,且支持acl功能;
# fdisk /dev/sda
# mdadm -C /dev/md129 -n 3 -l 5 -c 256 /dev/sda{8,9,10}
# mkfs.ext4 /dev/md129
# mkdir -p /backup
# echo << EOF >> /etc/fstab
> /dev/md129 /backup ext4 acl,noatime,defaults 0 0
> EOF
7、寫一個腳本
(1) 接受一個以上文件路徑作為參數;
(2) 顯示每個文件擁有的行數;
(3) 總結說明本次共為幾個文件統計了其行數;
#!/bin/bash
if [ $# -le 0 ] ;then
echo “請輸入至少一個文件路徑作為參數!”
echo
else
for i in $*;do
echo “文件 `basename $i` 擁有 `wc -l $i| cut -d’ ‘ -f1` 行”
done
echo
echo “總共為 $# 個文件統計了其行數。”
fi
8、寫一個腳本
(1) 傳遞兩個以上字符串當作用戶名;
(2) 創建這些用戶;且密碼同用戶名;
(3) 總結說明共創建了幾個用戶;
#!/bin/bash
if [ $# -le 2 ] ;then
echo “請在$0后面傳遞兩個以上字符串當作用戶名”
echo
else
for i in $*;do
useradd $i &> /dev/null
echo $i | passwd –stdin $i &> /dev/null
done
echo
echo “總結說明共創建了$#個用戶”
fi
9、寫一個腳本,新建20個用戶,visitor1-visitor20;計算他們的ID之和;
#!/bin/bash
uidsum=0
for i in {1..20};do
username=visitor$i
useradd $username &> /dev/null
uid=`id -u ${username}`
uidsum=$[$uidsum+$uid]
done
echo $uidsum
10、寫一腳本,分別統計/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#號開頭的行數之和,以及總的空白行數;
#!/bin/bash
chf1=”/etc/rc.d/rc.sysinit”
chf2=”/etc/rc.d/init.d/functions”
chf3=”/etc/fstab”
h1=`grep “^#” $chf1 | wc -l | cut -d’ ‘ -f1`
k1=`grep “^$” $chf1 | wc -l | cut -d’ ‘ -f1`
h2=`grep “^#” $chf2 | wc -l | cut -d’ ‘ -f1`
k2=`grep “^$” $chf2 | wc -l | cut -d’ ‘ -f1`
h3=`grep “^#” $chf3 | wc -l | cut -d’ ‘ -f1`
k3=`grep “^$” $chf3 | wc -l | cut -d’ ‘ -f1`
sumh=$((${h1}+${h2}+${h3}))
sumk=$((${k1}+${k2}+${k3}))
echo “#號開頭的行數之和是$sumh;總的空白行數是$sumk”
11、寫一個腳本,顯示當前系統上所有默認shell為bash的用戶的用戶名、UID以及此類所有用戶的UID之和;
#!/bin/bash
#grep “bash$” /etc/passwd | awk -F: ‘{print $1,$3}’
uidsum=0
for i in $(grep “bash$” /etc/passwd | cut -d’:’ -f1);do
uid=`id -u $i`
uidsum=$(($uidsum+$uid))
done
echo “默認shell為bash的用戶的UID之和是$uidsum”
12、寫一個腳本,顯示當前系統上所有,擁有附加組的用戶的用戶名;并說明共有多少個此類用戶;
#!/bin/bash
echo “以下用戶擁有附加組”
grep “[^:]$” /etc/group|cut -d: -f 4
echo
echo “`grep “[^:]$” /etc/group|cut -d: -f 4 | wc -l | cut -d’ ‘ -f1`個擁有附加組的用戶”
13、創建一個由至少兩個物理卷組成的大小為20G的卷組;要求,PE大小為8M;而在卷組中創建一個大小為5G的邏輯卷mylv1,格式化為ext4文件系統,開機自動掛載至/users目錄,支持acl;
14、新建用戶magedu;其家目錄為/users/magedu,而后su切換至此用戶,復制多個文件至家目錄;
15、擴展mylv1至9G,確保擴展完成后原有數據完全可用;
16、縮減mylv1至7G,確??s減完成后原有數據完全可用;
17、對mylv1創建快照,并通過備份數據;要求保留原有的屬主屬組等信息;
原創文章,作者:N26-深圳-城市蝸牛,如若轉載,請注明出處:http://www.www58058.com/68217
測試了部分代碼,腳本功能基本都已實現,但與此同時,作為博客,一定要注意代碼的可讀性,再接再勵。