第七周作业

 

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.创建一个大小为1Gswap分区,并创建好文件系统,并启用之;

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%至少250%读性能有提升,具有冗余写性能下降,磁盘利用率低
RAID 4有一个磁盘存放前两个磁盘校验码,异或读、写提升(n-1)/n至少31读写性能提升瓶颈在校验盘上
RAID 5校验盘三个盘轮流换读、写提升(n-1)/n至少31读写性能提升仅允许坏一块盘
RAID 6用两块盘做校验盘读、写提升(n-2)/n至少42读写性能提升磁盘利用率降低,写入速度没有raid5
RAID 10先两两做成RAID1,再把每组做成RAID0读、写提升50%至少450%读写性能提升磁盘利用率低
RAID01先两两一组做成RAID0,再把每组做成RAID1读写提升50%至少450%读写性能提升磁盘利用率低,容错没有raid10

 

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

1.创建2raid类型的分区,/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.创建一个大小为4GRAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;

1.创建3raid类型的分区,/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.写一个脚本,显示当前系统上所有默认shellbash的用户的用户名、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.扩展mylv19G,确保扩展完成后原有数据完全可用;

lvextend -L +4G /dev/vg0/mylv1

resize2fs /dev/vg0/mylv1

df -h

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

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

(0)
上一篇 2018-05-02 13:00
下一篇 2018-05-02 16:33

相关推荐