1、创建一个10G分区,并格式为ext4文件系统;
(1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;
(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;
1.创建分区/dev/sdb1,容量为10G
fdisk /dev/sdb
n
1
+10G
2.查看创建的分区
fdisk -l /dev/sdb
3.格式化
mke2fs -t ext4 -b 2048 -m 2 -L MYDATA /dev/sdb1
4.修改分区属性
tune2fs -o acl /dev/sdb1
5.查看分区属性
dumpe2fs -h /dev/sdb1
6.挂载
mount -o noexec,nodiratime /dev/sdb1 /data/mydata
7.设置开机自动挂载
vim /etc/fstab
/dev/sdb1 /data/mydata ext4 defaults 0 0
2.创建一个大小为1G的swap分区,并创建好文件系统,并启用之;
1.查看当前swap分区大小
free -m
2.创建swap类型的分区/dev/sdb1
fdisk /dev/sdb
n
1
t
82
3.转换为交换分区
mkswap /dev/sdb1
4.启动交换分区
swapon /dev/sdb1
5.再次查看交换分区
free -m
3.写一个脚本
(1)、获取并列出当前系统上的所有磁盘设备;
(2)、显示每个磁盘设备上每个分区相关的空间使用信息;
#!/bin/bash
lsblk
num=`fdisk -l | grep “^/dev/[sh]d.*” | wc -l | cut -d” ” -f1`
for i in `seq $num`;do
dev=$(fdisk -l | grep “^/dev/[sh]d.*” | head -$i | tail -1 | cut -d” ” -f1 )
df -h $dev
done
4.总结RAID的各个级别及其组合方式和性能的不同;
RAID
LEVEL | 简介 | 性能提升 | 冗余能力 | 空间利用率 | 磁盘数量(块) | 允许磁盘故障数 | 优点 | 缺点 |
RAID 0 | 数据均分到多个盘 | 读、写提升 | 无 | 100% | 至少2 | 不允许 | 读写性能、利用率高 | 缺乏冗余能力 |
RAID 1 | 第二块盘是第一块盘映射 | 读性能提升,写性能降低 | 有 | 50% | 至少2 | 50% | 读性能有提升,具有冗余 | 写性能下降,磁盘利用率低 |
RAID 4 | 有一个磁盘存放前两个磁盘校验码,异或 | 读、写提升 | 有 | (n-1)/n | 至少3 | 1 | 读写性能提升 | 瓶颈在校验盘上 |
RAID 5 | 校验盘三个盘轮流换 | 读、写提升 | 有 | (n-1)/n | 至少3 | 1 | 读写性能提升 | 仅允许坏一块盘 |
RAID 6 | 用两块盘做校验盘 | 读、写提升 | 有 | (n-2)/n | 至少4 | 2 | 读写性能提升 | 磁盘利用率降低,写入速度没有raid5快 |
RAID 10 | 先两两做成RAID1,再把每组做成RAID0 | 读、写提升 | 有 | 50% | 至少4 | 50% | 读写性能提升 | 磁盘利用率低 |
RAID01 | 先两两一组做成RAID0,再把每组做成RAID1 | 读写提升 | 有 | 50% | 至少4 | 50% | 读写性能提升 | 磁盘利用率低,容错没有raid10好 |
5.创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k;
1.创建2个raid类型的分区,/dev/sdc1,/dev/sdd1,/dev/sde1,创建raid1
mdadm -C -l 1 -c 128 -n 2 -x 1 /dev/sdc1 /dev/sdd1 /dev/sde1
mdadm -C /dev/md0 -l 1 -c 128 -n 2 -x 1 /dev/sdc1 /dev/sdd1 /dev/sde1
2.查看raid信息
mdadm -D /dev/md0
6.创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;
1.创建3个raid类型的分区,/dev/sdd1,/dev/sdd2,/dev/sde1,创建raid5
mdadm -C /dev/md0 -l 5 -c 256 -n 3 /dev/sdd1 /dev/sdd2 /dev/sde1
2.格式化为ext4
mke2fs -t ext4 /dev/md0
3.设置开机自动挂载
vim /etc/fstab
/dev/md0 /backup ext4 defaults,nodiratime,acl 0 0
7.写一个脚本
(1) 接受一个以上文件路径作为参数;
(2) 显示每个文件拥有的行数;
(3) 总结说明本次共为几个文件统计了其行数;
#!/bin/bash
if [ $# -eq 0 ];then
echo “must at least one file”
exit 2
fi
for i in $*;do
wc -l $i
done
echo “$#files total”
8.写一个脚本
(1) 传递两个以上字符串当作用户名;
(2) 创建这些用户;且密码同用户名;
(3) 总结说明共创建了几个用户;
#!/bin/bash
if [ $# -lt 2 ];then
echo “ at least two strings”
exit 2
fi
for i in $*;do
if id $i &> /dev/null ;then
echo “$i already exist”
else
useradd $i
echo “$i” | passwd --stdin $i &> /dev/null
echo “useradd $i and change passwd successfully”
fi
done
echo “users add total : $#”
9.写一个脚本,新建20个用户,visitor1-visitor20;计算他们的ID之和;
#!/bin/bash
for i in `seq 20`;do
useradd visitor$i
let sum+=`id -u visitor$i`
done
echo “id sum = $sum”
10.写一脚本,分别统计/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#号开头的行数之和,以及总的空白行数;
#!/bin/bash
lnum1_1=`grep “^#” /etc/rc.d/rc.sysinit | wc -l | cut -d” ” -f1`
lnum1_2=`grep “^[[:space:]]*$” /etc/rc.d/rc.sysinit | wc -l | cut -d” ” -f1`
sum1=$[ $lnum1_1+$lnum1_2 ]
echo “rc.sysinit # lines: $lnum1_1 ; space lines: $lnum1_2 ; total lines: $sum1”
lnum2_1=`grep “^#” /etc/rc.d/init.d/functions | wc -l | cut -d” ” -f1`
lnum3_2=`grep “^[[:space:]]*$” /etc/rc.d/init.d/functions | wc -l | cut -d” ” -f1`
sum2=$[ $lnum2_1+$lnum2_2 ]
echo “functions # lines: $lnum2_1 ; space lines: $lnum2_2 ; total lines: $sum2”
lnum3_1=`grep “^#” /etc/fstab | wc -l | cut -d” ” -f1`
lnum3_2=`grep “^[[:space:]]*$” /etc/fstab | wc -l | cut -d” ” -f1`
sum3=$[ $lnum3_1+$lnum3_2 ]
echo “fstab # lines: $lnum3_1 ; space lines: $lnum3_2 ; total lines: $sum3”
11.写一个脚本,显示当前系统上所有默认shell为bash的用户的用户名、UID以及此类所有用户的UID之和;
#!/bin/bash
grep “bash$” /etc/passwd | cut -d: -f1,3
for i in grep “bash$” /etc/passwd | cut -d: -f3;do
let sum+= $i
done
echo “UID SUM = $sum”
12.写一个脚本,显示当前系统上所有,拥有附加组的用户的用户名;并说明共有多少个此类用户;
#!/bin/bash
declare -i sum=0
for i in `cat /etc/passwd | cut -d: -f1` ;do
num=`id -G $i | wc -w`
if [ $num -gt 1 ] ; then
echo $i
let sum+=1
fi
done
echo “sum = $sum”
13.创建一个由至少两个物理卷组成的大小为20G的卷组;要求,PE大小为8M;而在卷组中创建一个大小为5G的逻辑卷mylv1,格式化为ext4文件系统,开机自动挂载至/users目录,支持acl;
1.创建分区/dev/sdb1,/dev/sdb2
fdisk /dev/sdb
2.创建pv
pvcreate /dev/sdb{1,2}
3.创建卷组vg0,pe大小为8m
vgcreate -s 8 vg0 /dev/sdb1 /dev/sdb2
4.查看vg信息
vgdisplay
5.创建lv逻辑卷mylv1,大小为5G
lvcreate -L 5G -n mylv1 /dev/vg0
lvdisplay
6.格式化为ext4
mke2fs -t ext4 /dev/vg0/mylv1
7.配置开机自动挂载
vim /etc/fstab
/dev/vg0/mylv1 /users /ext4 defaults,acl 0 0
14.新建用户magedu;其家目录为/users/magedu,而后su切换至此用户,复制多个文件至家目录;
useradd -d /users/magedu magedu
su – magedu
cp -rf /etc /users/magedu
15.扩展mylv1至9G,确保扩展完成后原有数据完全可用;
lvextend -L +4G /dev/vg0/mylv1
resize2fs /dev/vg0/mylv1
df -h
16.缩减mylv1至7G,确保缩减完成后原有数据完全可用;
1.卸载
umount /dev/vg0/mylv1
2.检查
e2fsck -f /dev/vg0/mylv1
3.重设大小
resize2fs /dev/vg0/mylv1 7G
4.减小逻辑卷大小
lvreduce -L 7G /dev/vg0/mylv1
5.重新挂载,并查看大小
mount -a
df -h
17.对mylv1创建快照,并通过备份数据;要求保留原有的属主属组等信息;
1.创建快照
lvcreate -L 1G -p r -s -n sn_mylv1 /dev/vg0/mylv1
2.将快照挂载至/mnt/back
mount /dev/vg0/sn_mylv1 /mnt/back
3.将快照的文件复制至/backup2
mkdir /mnt/back2
cp -a /back /back2
4.查看权限,没有改变
ll /back /back2
原创文章,作者:haoqiqiuzhi,如若转载,请注明出处:http://www.178linux.com/66752