1、创建一个10G分区,并格式为ext4文件系统;

(1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl

fdisk /dev/sdb

n 创建分区

p 主分区

1 编号1

+10G  10G空间

w    保存退出/

mkfs.ext4 –b 2048 –L“MYDATA” –m 2 /dev/sdb1

 

(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;

mkdir –p /data/mydata

mount –o acl –o nodiratime–o noexec /dev/sdb1 /data/mydata

 

2、创建一个大小为1Gswap分区,并创建好文件系统,并启用之;

fdisk /dev/sdb

n

p

2

+1G

t

82

mkswap /dev/sdb2

swapon /dev/sdb2

 

3、写一个脚本

(1)、获取并列出当前系统上的所有磁盘设备;

(2)、显示每个磁盘设备上每个分区相关的空间使用信息;

#!/bin/bash

#

disk=`fdisk -l | grep "/dev/[sh]d[a-z][1-9]" | cut -d" " -f 1`

echo "our device $disk"

for i in $disk;do

space=`df -hl $i`

echo "our space $space"

done

 

4、总结RAID的各个级别及其组合方式和性能的不同;

 

RAID 0:硬盘轮流读写,读写性能提升,无容错能力,最少需要2块盘组合。

RAID 1 : 硬盘写时每块硬盘各保存一份,有容错能力,一块坏,不影响另一块使用,最少2块盘。

RAID 5: 分布式奇偶校验独立磁盘结构,数据交叉存储,读写性能提升,空间磁盘数量N-1,有容错能力,只能坏1块盘,最少需要3块磁盘组合

 

5、创建一个大小为10GRAID1,要求有一个空闲盘,而且CHUNK大小为128k;

先创造三个硬盘, sdb1,sdc1,sdd110G

mdadm –C /dev/md1 –n2 –c 128 –x 1 –l 1 /sdb1 /sdc1 /sdd1

 

6、创建一个大小为4GRAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;

mdadm –C /dev/md5 –n3 –c 256 –l 5 /sde{1,2,3}

mkfs.ext4 /dev/md5

mkdir /backup

mount –o acl –o nodiratime/dev/md5 /backup

 

7、写一个脚本

(1) 接受一个以上文件路径作为参数;

(2) 显示每个文件拥有的行数;

(3) 总结说明本次共为几个文件统计了其行数;

#!/bin/bash

#

declare -i sum=0

for file in $@;do

count=$(wc -l $file | cut -d" " -f 1)

echo "$file have $count line"

sum+=1

done

echo "total have $count file"

8、写一个脚本

(1) 传递两个以上字符串当作用户名;

(2) 创建这些用户;且密码同用户名;

(3) 总结说明共创建了几个用户;

#!/bin/bash

#

if [ $# lt 2];then

    echo "i need more"

    exit 1

fi

for i in $@ ;do

    useradd user$i

    echo "user$i" | passwd --stdin user$i

done

echo "creat $# users"

9、写一个脚本,新建20个用户,visitor1-visitor20;计算他们的ID之和;

#!/bin/bash

#

declare -i sum=0

for i in {1..20};do

useradd visitor$i

id=`grep "visitor$i" /etc/passwd | cut -d: -f3`

sum=$[ $sum + $id ]

done

echo "$sum"

 

10、写一脚本,分别统计/etc/rc.d/rc.sysinit/etc/rc.d/init.d/functions/etc/fstab文件中以#号开头的行数之和,以及总的空白行数;

#!/bin/bash

#

for i in /etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/fstab;do

echo "$i have `grep -E "^#" $i | wc -l` line"

echo "$i have `grep -E "^$" $i | wc -l` null"

done

 

11、写一个脚本,显示当前系统上所有默认shellbash的用户的用户名、UID以及此类所有用户的UID之和;

#!/bin/bash

#

cat /etc/passwd | grep "bash$" | cut -d: -f 1,3

uid=`grep "bash$" /etc/passwd | cut -d: -f 3`

for i in $uid;do

let sum+=$i

done

echo "$sum"

 

 

12、写一个脚本,显示当前系统上所有,拥有附加组的用户的用户名;并说明共有多少个此类用户;

#!/bin/bash

#

declare -i sum=0

user=`cat /etc/passwd | cut -d: -f 1`

for i in $user;do

id $i | cut -d" " -f 3 | grep "," &> /dev/null

if [ $? eq 0 ];then

echo "the user is $i"

fi

sum+=1

done

echo "$sum"

 

13、创建一个由至少两个物理卷组成的大小为20G的卷组;要求,PE大小为8M;而在卷组中创建一个大小为5G的逻辑卷mylv1,格式化为ext4文件系统,开机自动挂载至/users目录,支持acl

pvcreat /dev/sdb1

pvcreat /dev/sdc1

vgcreat -s 8m myvg /dev/sdb1 /dev/sdc1

lvcreat -L 5G -n mylv1 myvg

mkfs.ext4 /dev/myvg/mylv1

mkdir /users

mount -o acl /dev/myvg/mylv1 /users

 

14、新建用户magedu;其家目录为/users/magedu,而后su切换至此用户,复制多个文件至家目录;

mkdir -p /users/magedu

useradd magedu -d /users/magedu

su magedu

cp /etc/fstab /users/magedu 

 

15、扩展mylv19G,确保扩展完成后原有数据完全可用;

lvextend -L 9G /dev/myvg/mylv1

resize2fs /dev/myvg/mylv1

 

16、缩减mylv17G,确保缩减完成后原有数据完全可用;

unmount /dev/myvg/mylv1

w2fsck -f /dev/myvg/mylv1

resize2fs /dev/myvg/mylv1 7G

lvreduce -L 7G /dev/myvg/mylv1

 

17、对mylv1创建快照,并通过备份数据;要求保留原有的属主属组等信息;

dd if=/dev/myvg/mylv1 of=/dev/sdd1