1、創建一個10G分區,并格式為ext4文件系統;
(1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;
(2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳;
[root@localhost ~]# mke2fs -t ext4 -b 2048 -m 2 -L 'MYDATA' /dev/sdd [root@localhost ~]# tune2fs -o acl /dev/sdd[root@localhost ~]# mkdir -pv /data/mydata [root@localhost ~]# mount -o acl,noexec,noatime /dev/sdd /data/mydata/
2、 創建一個大小為1G的swap分區,并創建好文件系統,并啟用之;
#fdisk /dev/sdb (n;p;2;+1G;t;2;82;w) #partx -a /dev/sdb#mkswap /dev/sdb2 #swapon /dev/sdb2 # free -m
3、 寫一個腳本 (1)、獲取并列出當前系統上的所有磁盤設備; (2)、顯示每個磁盤設備上每個分區相關的空間使用信息;
#!/bin/bash # fdisk -l | grep ^"Disk /dev/[sh]d[a-z]" | cut -d"/" -f 3 | cut -d: -f1 for i in $(fdisk -l | grep ^"/dev/[sh]d[a-z][0-9]\?" | cut -d' ' -f1) ;do df -h $i | grep "/.*$" done
4、 總結RAID的各個級別及其組合方式和性能的不同;
RAID Level | 名稱 | 磁盤數 | 可用空間 | 可靠性 | I/O能力 |
RAIDO | 條帶卷 | >=2 | 100% | 1/N | 讀寫能力提升 |
RAID1 | 鏡像卷 | >=2 | 50% | 可允許一塊磁盤故障 | 無 |
RAID4 | 固定校驗盤 | >=3 | N-1 | 可允許一塊磁盤故障 | 讀寫能力提升 |
RAID5 | 分布式校驗盤 | >=3 | N-1 | 可允許一塊磁盤故障 | 讀寫能力提升 |
RAID6 | 校驗碼存兩份 | >=4 | N-2 | 可允同時故障兩塊盤 | 讀寫能力提升 |
RAID01 | raid0+raid1 | >=4 | 50% | 可允許一塊磁盤故障 | 讀寫能力提升 |
RAID10 | raid1+raid0 | >=4 | 50% | 同組raid1可故障一塊 | 讀寫能力提升 |
5、 創建一個大小為10G的RAID1,要求有一個空閑盤,而且CHUNK大小為128k;[root@localhost ~]# mdadm -C /dev/md0 -c 128 -x1 -n2 -l1 -a yes /dev/sd[b-d]6、 創建一個大小為4G的RAID5設備,chunk大小為256k,格式化ext4文件系統,要求可開機自動掛載至/backup目錄,而且不更新訪問時間戳,且支持acl功能;
[root@localhost ~]# mdadm -C /dev/md0 -n3 -l5 -a yes -c 256 /dev/sd[b-d] [root@localhost ~]# mkfs.ext4 /dev/md0 [root@localhost ~]# vim /etc/fstab 新增一行 UUID=f9ae0ca3-1c85-4715-a6c5-68da5bdaa838 /backup ext4 noatime,acl 0 0
7、 寫一個腳本
(1) 接受一個以上文件路徑作為參數;
(2) 顯示每個文件擁有的行數; (3) 總結說明本次共為幾個文件統計了其行數;
#!/bin/bash # if [ $# -eq 0 ];then echo "please give a file name!" exit 3 fi for i in $@;do echo "$i have $(wc -l $i | cut -d" " -f1) lines." done echo "The total of $# file their statistics the number of rows"
8、 寫一個腳本
(1) 傳遞兩個以上字符串當作用戶名;
(2) 創建這些用戶;且密碼同用戶名; (3) 總結說明共創建了幾個用戶;
#!/bin/bash#if [ $# -lt 2 ];then echo "please give two user name!" exit 3 fi for i in $@;do useradd $i && echo "$i" | passwd --stdin $i &> /dev/null let usersum++doneecho "創建了$#個用戶"
9、 寫一個腳本,新建20個用戶,visitor1-visitor20;計算他們的ID之和;
#!/bin/bash # declare -i sum=0 for ((i=1;i<=20;i++));do useradd visitor$i echo "useradd visitor$i success!" sum+=$(id -u visitor$i)doneecho "all user uid sum: $sum"
10、 寫一腳本,分別統計/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#號開頭的行數之和,以及總的空白行數;
#!/bin/bash # declare -i sum1=0; declare -i sum2=0; for i in {/etc/rc.d/rc.sysinit,/etc/rc.d/init.d/functions,/etc/fstab}; do sum1+=$( grep -c '^#' $i ) sum2+=$( grep -c '^[[:space:]]*$' $i ) done echo "#start line number: $sum1"echo "space line number: $sum2"~
11、 寫一個腳本,顯示當前系統上所有默認shell為bash的用戶的用戶名、UID以及此類所有用戶的UID之和;
#!/bin/bash # cat /etc/passwd | grep "/bin/bash$" | cut -d: -f1,3 uuid=$(cat /etc/passwd | grep "/bin/bash$" | cut -d: -f3) declare -i sum=0 for i in $uuid;do let sum+=$idoneecho "uuid sum=$sum"
12、 寫一個腳本,顯示當前系統上所有,擁有附加組的用戶的用戶名;并說明共有多少個此類用戶;
#!/bin/bash # declare -i user=0 name=`cut -d: -f1 /etc/passwd`for i in $user;do uid=`echo $i | cut -d: -f3` user=`echo $i |cut -d: -f1` echo "$user UID is $uid" let sum+=$uiddoneecho "有$sum個此類用戶"
13、 創建一個由至少兩個物理卷組成的大小為20G的卷組;要求,PE大小為8M;而在卷組中創建一個大小為5G的邏輯卷mylv1,格式化為ext4文件系統,開機自動掛載至/users目錄,支持acl;
1、添加磁盤并修改磁盤類型為8e linux LVM [root@localhost ~]# fdisk -l | grep /dev/sd Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors /dev/sda1 * 2048 616447 307200 83 Linux /dev/sda2 616448 2715647 1049600 82 Linux swap / Solaris /dev/sda3 2715648 41943039 19613696 83 Linux Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors /dev/sdb1 2048 20971519 10484736 8e Linux LVM Disk /dev/sdc: 10.7 GB, 10737418240 bytes, 20971520 sectors /dev/sdc1 2048 20971519 10484736 8e Linux LVM Disk /dev/sdd: 10.7 GB, 10737418240 bytes, 20971520 sectors /dev/sdd1 2048 20971519 10484736 8e Linux LVM 2、創建PV pvcreate /dev/sd{b,c,d}1 [root@localhost ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb1 myvg lvm2 a-- 9.99g 9.99g /dev/sdc1 myvg lvm2 a-- 9.99g 9.99g /dev/sdd1 myvg lvm2 a-- 9.99g 9.99g 3、創建VG并設定PE為8M大小 vgcreate myvg -s 8 /dev/sd{b,c,d}1 [root@localhost ~]# vgs VG #PV #LV #SN Attr VSize VFree myvg 3 0 0 wz--n- 29.98g 29.98g 4、創建LV 名字為mylv1 [root@localhost ~]# lvcreate -n mylv1 -L 5G myvg 5、格式化 [root@localhost ~]# mkfs.ext4 /dev/myvg/mylv1 6、掛載 mount /dev/myvg/mylv1 /users vim /etc/fstab /dev/myvg/mylv1 /users ext4 acl 0 0
14、 新建用戶magedu;其家目錄為/users/magedu,而后su切換至此用戶,復制多個文件至家目錄;
#useradd magedu -d /users/magedu#su magedu #cp -rf /etc/skel/.* /users/magedu
15、 擴展mylv1至9G,確保擴展完成后原有數據完全可用;
[root@localhost ~]# lvextend -L +9G /dev/myvg/mylv1 [root@localhost ~]# resize2fs /dev/myvg/mylv1 [root@localhost ~]# df -lh /dev/myvg/mylv1 Filesystem Size Used Avail Use% Mounted on /dev/mapper/myvg-mylv1 14G 56M 13G 1% /users [root@localhost ~]# ls /users/magedu/ abrt cups gshadow machine-id prelink.conf.d shells adjtime cupshelpers gshadow- magic printcap smartmontools ......
16、縮減mylv1至7G,確??s減完成后原有數據完全可用;
[root@llww3317 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 18G 3.8G 13G 23% / tmpfs 499M 80K 498M 1% /dev/shm /dev/sda1 190M 34M 147M 19% /boot [root@llww3317 ~]# mount /dev/myvg/mylv1 /data/mydata [root@llww3317 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 18G 3.8G 13G 23% / tmpfs 499M 80K 498M 1% /dev/shm /dev/sda1 190M 34M 147M 19% /boot /dev/mapper/myvg-mylv1 8.8G 12M 8.3G 1% /data/mydata [root@llww3317 ~]# cp /etc/issue /data/mydata [root@llww3317 ~]# umount /dev/myvg/mylv1 [root@llww3317 ~]# e2fsck -f /dev/myvg/mylv1 e2fsck 1.41.12 (17-May-2010) 第一步: 檢查inode,塊,和大小 第二步: 檢查目錄結構 第3步: 檢查目錄連接性 Pass 4: Checking reference counts 第5步: 檢查簇概要信息 /dev/myvg/mylv1: 12/589824 files (0.0% non-contiguous), 72672/2359296 blocks [root@llww3317 ~]# resize2fs /dev/myvg/mylv1 7G resize2fs 1.41.12 (17-May-2010) Resizing the filesystem on /dev/myvg/mylv1 to 1835008 (4k) blocks. The filesystem on /dev/myvg/mylv1 is now 1835008 blocks long. [root@llww3317 ~]# lvreduce -L 7G /dev/myvg/mylv1 WARNING: Reducing active logical volume to 7.00 GiB. THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce myvg/mylv1? [y/n]: y Size of logical volume myvg/mylv1 changed from 9.00 GiB (1152 extents) to 7.00 GiB (896 extents). Logical volume mylv1 successfully resized. [root@llww3317 ~]# mount /dev/myvg/mylv1 /data/mydata [root@llww3317 ~]# more /data/mydata/issue CentOS release 6.8 (Final) Kernel \r on an \m
17、對mylv1創建快照,并通過備份數據;要求保留原有的屬主屬組等信息;lvcreate -L 2G -s -n lv1back/dev/myvg/mylv1
lvcreate -L 2G -s -n lv1back/dev/myvg/mylv1
原創文章,作者:N21-chenggb,如若轉載,請注明出處:http://www.www58058.com/50205
1、注意腳本的排版格式。
2、可以嘗試更多方法要實現同一個問題。