1、創建一個10G分區,并格式為ext4文件系統;
fdisk /dev/sdb n p 1 +10G w
(1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;
mke2fs -b 1024 -L MYDATA /dev/sdb1 -t ext4 tune2fs -o acl /dev/sdb1
(2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳;
mount -o noatime,noexec /dev/sdb1 /data/mydata
2、創建一個大小為1G的swap分區,并創建好文件系統,并啟用之;
fdisk /dev/sdb n l +G t 5 82 w partx -a /dev/sdb5 mkswap /dev/sdb5 swapon /dev/sdb5
3、寫一個腳本
(1)、獲取并列出當前系統上的所有磁盤設備;
(2)、顯示每個磁盤設備上每個分區相關的空間使用信息;
#!/bin/bash # select a in 'All Disk' 'Disk Use'; do case $a in 'All Disk') fdisk -l ;; 'Disk Use') df -Th ;; *) exit ;; esac done
4、總結RAID的各個級別及其組合方式和性能的不同;
raid0 最少兩塊磁盤,數據切割成等量大小存放在每個磁盤上。 讀、寫性能提升但無容錯能力。 raid1 最少兩塊磁盤,數據同時存儲在每個磁盤上。寫性能略有下降,讀性能提升,有容錯能力。 raid5 最少三塊磁盤,數據切割存儲到每個磁盤,每個磁盤上會有同位檢查碼,允許有個磁盤損壞。讀、寫性能提升,有容錯能力(最多壞一塊磁盤)。 raid10 最少四塊磁盤,先讓兩塊磁盤組成 RAID 1,共有兩組,將兩組 RAID 1 再組成一組 RAID 0。讀、寫性能提升,有容錯能力(每一組可壞一塊盤)
5、創建一個大小為10G的RAID1,要求有一個空閑盤,而且CHUNK大小為128k;
創建磁盤分區/dev/sdb{6,7,8} 創建raid mdadm -C /dev/md0 -a yes -l 1 -c 128 -n 2 -x 1 /dev/sdb{6,7,8}
6、創建一個大小為4G的RAID5設備,chunk大小為256k,格式化ext4文件系統,要求可開機自動掛載至/backup目錄,而且不更新訪問時間戳,且支持acl功能;
mdadm -C /dev/md5 -a yes -n 5 -l 5 -c 256 /dev/sdb{6,7,8,9,10} vim /etc/fstab mount –a
7、寫一個腳本
(1) 接受一個以上文件路徑作為參數;
(2) 顯示每個文件擁有的行數;
(3) 總結說明本次共為幾個文件統計了其行數;
#!/bin/bash # sum=0 [ $# -eq 0 ] && echo "Usage:$0 dirpath" && exit for i in $@ ;do if [ ! -d $i ] ;then echo "$i is not a dirpath" exit else cd $i for j in `ls $i`; do if [ -f $j ];then echo $j > /tmp/tj.txt wc -l $j let sum=$sum+1 fi done echo "There $sum files are counted rownumber " fi done
8、寫一個腳本
(1) 傳遞兩個以上字符串當作用戶名;
(2) 創建這些用戶;且密碼同用戶名;
(3) 總結說明共創建了幾個用戶;
#!/bin/bash # [ $# -eq 0 ] && echo "Usage:$0 string" && exit [ $# -lt 2 ] && echo "Args must greater then 2" && exit declare -i a=0 for i in $@ ;do id $i >> /dev/null 2>&1 if [ $? -eq 0 ];then echo "$i is already exit" else useradd $i sleep 3 echo "$i" | passwd --stdin $i >> /dev/nul 2>&1 let a++ fi done echo "$a users added"
9、寫一個腳本,新建20個用戶,visitor1-visitor20;計算他們的ID之和;
#!/bin/bash # sum=0 for i in {1..20};do id visitor$i >> /dev/null 2>&1 if [ $? -eq 0 ];then echo "visitor$i is already exit" else useradd visitor$i echo "visitor$i" | passwd --stdin visitor$i >> /dev/nul 2>&1 fi tail -1 /etc/passwd let sum+=`tail -1 /etc/passwd | awk -F: '{print $3}'` done echo "the id sum is $sum"
10、寫一腳本,分別統計/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#號開頭的行數之和,以及總的空白行數;
#!/bin/bash # ##'#'start dirpath='/etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/fstab' ssum=`grep '^#' $dirpath |wc -l` echo "#start row number is $ssum" ##'blank' bsum=`grep '^$' $dirpath |wc -l` echo "blank row number is $bsum"
11、寫一個腳本,顯示當前系統上所有默認shell為bash的用戶的用戶名、UID以及此類所有用戶的UID之和;
#!/bin/bash # sum=0 grep '/bin/bash$' /etc/passwd | awk -F: 'BEGIN{printf "%-10s,%s\n","USER","UID"}{printf "%-10s,%s\n",$1,$3}' ss=`awk -F: '{print $3}' /etc/passwd` for i in $ss;do let sum+=$i done echo "the uid sum is $sum"
12、寫一個腳本,顯示當前系統上所有,擁有附加組的用戶的用戶名;并說明共有多少個此類用戶;
#!/bin/bash # #declare -a bb bb=`awk -F: '{ if( $NF != NULL ) printf "%-15s%s\n",$1,$NF}' /etc/group | awk '{print $1}'` ss=`awk -F: '{ if( $NF != NULL ) printf "%-15s%s\n",$1,$NF}' /etc/group | awk '{print $1}'| wc -l` echo "user name is :" for i in $bb;do echo -n " $i" done echo "" echo "user number is: $ss"
13、創建一個由至少兩個物理卷組成的大小為20G的卷組;要求,PE大小為8M;而在卷組中創建一個大小為5G的邏輯卷mylv1,格式化為ext4文件系統,開機自動掛載至/users目錄,支持acl;
創建可用分區,設置為lvm
pvcreate /dev/sdc{1,2} vgcreate -s 8M myvg /dev/sdc{1,2} lvcreate -L 5G -n mylv1 myvg mkfs.ext4 /dev/myvg/mylv1 mkdir /users vim /etc/fstab mount –a
14、新建用戶magedu;其家目錄為/users/magedu,而后su切換至此用戶,復制多個文件至家目錄;
#!/bin/bash if [ $UID -eq 0 ] ;then [ -d /users/magedu ] || mkdir -p /users/magedu id magedu >> /dev/null if [ $? -eq 0 ];then echo "user is exist" userdel -r magedu exit else useradd -d /users/magedu magedu sleep 3 chown -R magedu:magedu /users/magedu chmod -R 700 /users/magedu fi else echo "user is not root " exit fi sleep 3 echo "now su to magedu" su - magedu <<EOF cp /etc/skel/.* ~/ EOF exit echo "copy is done"
15、擴展mylv1至9G,確保擴展完成后原有數據完全可用;
lvresize -L +4G /dev/myvg/mylv1 resize2fs /dev/myvg/mylv1
16、縮減mylv1至7G,確??s減完成后原有數據完全可用;
umount /dev/myvg/mylv1 e2fsck /dev/myvg/mylv1 resize2fs -f /dev/myvg/mylv1 7G lvreduce -L 7G /dev/myvg/mylv1
17、對mylv1創建快照,并通過備份數據;要求保留原有的屬主屬組等信息;
創建快照
lvcreate -L 1G -s -n myss /dev/myvg/mylv1 創建快照掛載目錄 mkdir /snap 掛載快照 mount /dev/myvg/myss /snap 備份 tar –zcvpf /tmp/backup.tar.gz /snap/*
原創文章,作者:hhaa0352,如若轉載,請注明出處:http://www.www58058.com/38321
寫的很好,排版也很棒,加油