1、创建一个10G分区,并格式为ext4文件系统;
(1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;
[root@centos ~]# mke2fs -t ext4 -b 2048 -m 2 -L "MYDATA" /dev/sdb1 mke2fs 1.41.12 (17-May-2010) Filesystem label=MYDATA OS type: Linux Block size=2048 (log=1) Fragment size=2048 (log=1) Stride=0 blocks, Stripe width=0 blocks 328440 inodes, 2626610 blocks 52532 blocks (2.00%) reserved for the super user First data block=0 [root@centos ~]# mount -o acl /dev/sdb1 /test/ [root@centos ~]# mount /dev/mapper/vg_centos-lv_root on / type ext4 (rw) /dev/sdb1 on /test type ext4 (rw,acl)
(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;
[root@centos ~]# mount -o noexec,noatime /dev/sdb1 /data/mydata/ [root@centos ~]# mount /dev/mapper/vg_centos-lv_root on / type ext4 (rw) /dev/sdb1 on /data/mydata type ext4 (rw,noexec,noatime)
2、创建一个大小为1G的swap分区,并创建好文件系统,并启用之;
[root@centos ~]# mkswap /dev/sdb1 && swapon /dev/sdb1 Setting up swapspace version 1, size = 1060252 KiB no label, UUID=fb9d419c-2190-4e1b-964c-0e2614bc74f0 [root@centos ~]# free total used free shared buffers cached Mem: 1012292 913096 99196 3664 34452 544528 -/+ buffers/cache: 334116 678176 Swap: 2633112 8 2633104 [root@centos ~]# swapoff /dev/sdb1 [root@centos ~]# free total used free shared buffers cached Mem: 1012292 913352 98940 3664 34192 545180 -/+ buffers/cache: 333980 678312 Swap: 1572860 8 1572852
3、写一个脚本
(1)、获取并列出当前系统上的所有磁盘设备;
(2)、显示每个磁盘设备上每个分区相关的空间使用信息;
[root@centos ~]# /test/exercise1.sh total diskes: Disk /dev/sda Disk /dev/sdb diskes used: Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_centos-lv_root 13G 3.7G 8.4G 31% / tmpfs 495M 76K 495M 1% /dev/shm /dev/sda1 477M 29M 424M 7% /boot /dev/sr0 4.4G 4.4G 0 100% /media/CentOS_6.6_Final [root@centos ~]# vim /test/exercise1.sh [root@centos ~]# /test/exercise1.sh total diskes: Disk /dev/sda Disk /dev/sdb diskes used: Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_centos-lv_root 13G 3.7G 8.4G 31% / tmpfs 495M 76K 495M 1% /dev/shm /dev/sda1 477M 29M 424M 7% /boot /dev/sr0 4.4G 4.4G 0 100% /media/CentOS_6.6_Final [root@centos ~]# cat /test/exercise1.sh #!/bin/bash disk=$(fdisk -l | grep "Disk /dev/[sh]d" | cut -d: -f1) echo -e "total diskes:\n $disk" diskused=$(fdisk -l | grep "/dev/[sh]d[a-z][1-9]"| awk '{print $1}'| df -h) echo -e "diskes used: \n $diskused"
4、总结RAID的各个级别及其组合方式和性能的不同;
首先 :RAID通过在多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量;
通过数据校检提供容错功能。
RAID0 : n>=2,磁盘容量不相等时,以最小容量为基准,取每个磁盘的容量组成raid0,并行读写,性能最好,但无容错能力,利用率100%
RAID1 : n>=2,磁盘容量不相等时,以最小容量为基准,每个磁盘存储原始数据的镜像,成本高,有冗余,利 用率50%
RAID2 :n>=3 采用海明码做数据校检,条块单位是位或者字节,校验码存储到阵列中的一个磁盘上,其他磁盘并行读写,有冗余,校验盘有可能成为瓶颈。
RAID3 :n>=3 采用奇偶校验码码做数据校检,条块单位是位或者字节,校验码存储到阵列中的一个磁盘上,其他磁盘并行读写,有冗余,校验盘有可能成为瓶颈。
RAID4 : n>=3 采用奇偶校验码码做数据校检,条块单位是数据块,校验码存储到阵列中的一个磁盘上,其他 磁盘并行读写,有冗余,校验盘有可能成为瓶颈。
RAID4 : n>=3 采用奇偶校验码码做数据校检,条块单位是数据块,校验码存储到阵列中的一个磁盘上,其他 磁盘并行读写,有冗余,校验盘有可能成为瓶颈。
RAID5 :n>=3,把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上,其中任意N-1块磁盘上都存储完整的数据,没有独立的奇偶校验盘,所有校验信息分散放在所有磁盘上, 只占用一个磁盘的容量,并行读写,可以坏一块,利用率(n-1)/n。
RAID10 :先做raid1镜像阵列,然后条带阵列。
RAID01 :先做条带阵列,再做镜像阵列,条带磁盘坏一块,数据不容易恢复,冗余性不好,不建议使用。
5、创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k;
[root@centos ~]# mdadm -C /dev/md0 -n3 -l 1 -c 128 -x1 /dev/sdb{1,2,3} [root@centos ~]# mdadm -D /dev/md0 /dev/md0: Version : 1.2 [root@centos ~]# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sdb3[2](S) sdb2[1] sdb1[0] 2102400 blocks super 1.2 [2/2] [UU] unused devices: <none>
6、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;
[root@centos ~]# mdadm -C /dev/md0 -n2 -l 5 -c 256 -x1 /dev/sdb{1,2,3} [root@centos ~]# cat /proc/mdstat Personalities : [raid1] [raid6] [raid5] [raid4] md0 : active raid5 sdb2[3] sdb3[2](S) sdb1[0] 2102272 blocks super 1.2 level 5, 256k chunk, algorithm 2 [2/2] [UU] unused devices: <none> [root@centos ~]# mkfs -t ext4 /dev/md0 [root@centos ~]# cat /etc/fstab /dev/md0 /backup ext4 noatime,acl 0 0 [root@centos ~]# mount -a [root@centos ~]# mount /dev/md0 on /backup type ext4 (rw,noatime,acl)
7、写一个脚本
(1) 接受一个以上文件路径作为参数;
(2) 显示每个文件拥有的行数;
(3) 总结说明本次共为几个文件统计了其行数;
[root@centos test]# ./exercise3.sh /etc/passwd 34 /etc/passwd filesnumber:1 [root@centos test]# ./exercise3.sh /etc/passwd /etc/issue 34 /etc/passwd 3 /etc/issue filesnumber:2 [root@centos test]# ./exercise3.sh /etc/passwd /etc/issue /etc/ 34 /etc/passwd 3 /etc/issue filesnumber:2 [root@centos test]# ./exercise3.sh must input files! [root@centos test]# ./exercise3.sh /etc/passwd /etc/issue /etc/ /etc/rc.d/rc.sysinit 34 /etc/passwd 3 /etc/issue 687 /etc/rc.d/rc.sysinit filesnumber:3 [root@centos test]# cat exercise3.sh #!/bin/bash declare -i count if [ $# -gt 0 ];then for i in $* ; do if [ ! -f $i ];then continue fi wc -l $i if [ $? -eq 0 ];then let count++ fi done echo -e "filesnumber:$count" fi if [ $# -eq 0 ]; then echo "must input files!" fi
8、写一个脚本
(1) 传递两个以上字符串当作用户名;
(2) 创建这些用户;且密码同用户名;
(3) 总结说明共创建了几个用户;
[root@centos test]# ./exercise4.sh test1 test2 at least 3 users! [root@centos test]# ./exercise4.sh test1 test2 test3 Changing password for user test1. passwd: all authentication tokens updated successfully. user:test1 added Changing password for user test2. passwd: all authentication tokens updated successfully. user:test2 added Changing password for user test3. passwd: all authentication tokens updated successfully. user:test3 added [root@centos test]# vim /test/exercise4.sh [root@centos test]# ./exercise4.sh test1 test2 test3 Changing password for user test1. passwd: all authentication tokens updated successfully. user:test1 added Changing password for user test2. passwd: all authentication tokens updated successfully. user:test2 added Changing password for user test3. passwd: all authentication tokens updated successfully. user:test3 added total 3 [root@centos test]# cat exercise4.sh #!/bin/bash declare -i count if [ $# -lt 3 ];then echo "at least 3 users!" exit 12 fi for i in $*;do id $i &>/dev/null if [ $? -eq 0 ];then echo "$i exsits!" else useradd $i && echo "$i" | passwd --stdin "$i" let count++ echo "user:$i added" fi done echo "total $count"
9、写一个脚本,新建20个用户,visitor1-visitor20;计算他们的ID之和;
[root@centos test]# cat exercise1.sh #/bin/bash for m in {1..20};do useradd visitor$m && echo "user:visitor$m added!" || echo "user exsits!" done declare -i sum=0 for i in $(cat /etc/passwd | cut -d: -f3 | tail -20);do let sum+=$i done echo "users id sums: $sum"
10、写一脚本,分别统计/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#号开头的行数之和,以及总的空白行数;
[root@centos test]# cat exercise2.sh #/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 let sum1+=$(cat $i | grep "^[#]" | wc -l) let sum2+=$(cat $i | grep "^$" | wc -l) done echo "#begins lines:$sum1" echo "spaces lines:$sum2" [root@centos test]# bash -x exercise2.sh #begins lines:91 + echo 'spaces lines:173' spaces lines:173
11、写一个脚本,显示当前系统上所有默认shell为bash的用户的用户名、UID以及此类所有用户的UID之和;
[root@centos test]# cat exercise3.sh #/bin/bash declare -i sum1=0 for i in $(cat /etc/passwd | cut -d: -f3);do let sum+=$i done printf "%s,%s,%s,%d,$(cat /etc/passwd | cut -d: -f1,3,7), uidsums:$sum \n" [root@centos test]# ./exercise3.sh ntp:38:/sbin/nologin apache:48:/sbin/nologin pulse:497:/sbin/nologin sshd:74:/sbin/nologin tcpdump:72:/sbin/nologin derulo:500:/bin/bash, uidsums:68821
12、写一个脚本,显示当前系统上所有,拥有附加组的用户的用户名;并说明共有多少个此类用户;
[root@centos test]# cat exercise5.sh #/bin/bash declare -i sum=0 for i in $(cat /etc/passwd | cut -d: -f1 );do id $i | grep "," | cut -d " " -f1 | egrep -o "\(.*\)" | tr "()" " " id $i | grep "," &>/dev/null if [ $? -eq 0 ];then let sum++ fi done echo "uidsums:$sum" [root@centos test]# ./exercise5.sh bin daemon adm postfix test test1 uidsums:6
13、创建一个由至少两个物理卷组成的大小为20G的卷组;要求,PE大小为8M;而在卷组中创建一个大小为5G的逻辑卷mylv1,格式化为ext4文件系统,开机自动挂载至/users目录,支持acl;
[root@centos ~]# pvcreate /dev/sd[b,c] [root@centos ~]# vgcreate -s 8M myvg /dev/sd[b,c] [root@centos ~]# lvcreate -L 5G -n /dev/myvg/mylv1 /dev/myvg [root@centos ~]# mkfs -t ext4 /dev/myvg/mylv1 [root@centos ~]# cat /etc/fstab /dev/myvg/mylv1 /users ext4 acl 0 0 [root@centos ~]# mount -a [root@centos ~]# mount /dev/mapper/myvg-mylv1 on /users type ext4 (rw,acl)
14、新建用户magedu;其家目录为/users/magedu,而后su切换至此用户,复制多个文件至家目录;
[root@centos ~]# su - magedu [magedu@centos ~]$ cp /etc/issue /etc/fstab ./
15、扩展mylv1至9G,确保扩展完成后原有数据完全可用;
[root@centos users]# df -h /dev/mapper/myvg-mylv1 4.8G 10M 4.6G 1% /users [root@centos users]# lvextend -L 9G -n /dev/myvg/mylv1 [root@centos users]# resize2fs /dev/myvg/mylv1 [root@centos users]# ls index.html lost+found
16、缩减mylv1至7G,确保缩减完成后原有数据完全可用;
[root@centos ~]# umount /users/ [root@centos ~]# e2fsck -f /dev/myvg/mylv1 [root@centos ~]# resize2fs /dev/myvg/mylv1 7G [root@centos ~]# lvreduce -L 7G -n /dev/myvg/mylv1
17、对mylv1创建快照,并通过备份数据;要求保留原有的属主属组等信息;
[root@centos users]# cp -a /etc/issue ./ [root@centos users]# ls issue lost+found [root@centos ~]# lvcreate -L 6G -s -n mylv1s myvg/mylv1 [root@centos ~]# mkdir /snapshot [root@centos ~]# mount /dev/myvg/mylv1s /snapshot/ [root@centos ~]# cp -a /etc/fstab /users/ [root@centos test]# cd /users/ [root@centos users]# ls fstab issue lost+found [root@centos users]# cd /snapshot/ [root@centos snapshot]# ls issue lost+found
原创文章,作者:Snoo,如若转载,请注明出处:http://www.178linux.com/25736
评论列表(1条)
写的很好,排版也很棒,加油