您的位置:首页 > 其它

第七周作业

2016-09-25 15:20 225 查看
1、创建一个10G分区,并格式为ext4文件系统;
(1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;
#新挂载的文件系统为 /etc/sdb
使用 fdisk 工具,依次输入以下内容即可创建成功
fdisk /dev/sdb
n
p
<Enter>
+10G
w

#格式化分区为 ext4 块大小 2048 默认启用 acl 卷标 MYDATA
mkfs.ext4 -b 2048 -m 2 -L "MYDATA" /dev/sdb1
(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;
#创建文件目录
mkdir /data/mydata

#挂载
mount /dev/sdb1 -o noexec,noatime /data/mydata/


2、创建一个大小为1G的swap分区,并创建好文件系统,并启用之;
#使用 fdisk 工具,依次输入以下
fdisk /dev/sdb
n
p
2
+1G
t
2
82
w

#此时已经创建好了一个空的 swap 分区 sdb2

#使用 swap 分区格式化工具格式化分区并挂载
mkswap /dev/sdb2
swapon /dev/sdb2


3、写一个脚本
(1)、获取并列出当前系统上的所有磁盘设备;
(2)、显示每个磁盘设备上每个分区相关的空间使用信息;

这么简单的代码不需要我注释吧
#!/bin/bash
# Auther: root
# 2016-09-25 15:59:00
# mage-test
disklist=($(ls /dev | grep -E "^[hs]d[a-z][0-9]?"))
echo -e "This is all disk device in you system:\n---"
for dev in ${disklist[@]};do
echo "/dev/$dev"
done

echo -e "---\nThis is disk used information:\n---"
echo -en "$(df -h | head -n 1)"
for dev in ${disklist[@]};do
echo -e "$(df -h | grep -E "^/dev/$dev[[:space:]]")"
done

echo -e "---\nThis is swap used information\n---"
echo -e "$(free | head -n 1&&free -h | grep -i "^Swap:")"






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

RAID-0:
读、写性能提升;
可用空间:N*min(S1,S2,...)
无容错能力
最少磁盘数:2, 2+

RAID-1:
读性能提升、写性能略有下降;
可用空间:1*min(S1,S2,...)
有冗余能力
最少磁盘数:2, 2+

RAID-4:
1101, 0110, 1011

RAID-5:
读、写性能提升
可用空间:(N-1)*min(S1,S2,...)
有容错能力:1块磁盘
最少磁盘数:3, 3+

RAID-6:
读、写性能提升
可用空间:(N-2)*min(S1,S2,...)
有容错能力:2块磁盘
最少磁盘数:4, 4+

5、创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k;
假设硬盘上以及有了3个 10G 的分区 , sdc1 sdc2 sdc3 ,这里就不写出创建分区的方法了
#使用工具 mdadm
mdadm -C /dev/md0 -n 2 -l 1 -x 1 -c 128 /dev/sdc{1..3}


6、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;
假设已经有3个2G 的分区,分别为 sdd1 sdd2 sdd3
#先使用工具 mdadm
mdadm -C /dev/md1 -n 3 -l 5  -c 256 /dev/sdd{1..3}
mkfs.ext4 /dev/md1
mkdir /mount1
echo "/dev/md1 /mount1/ ext4 defaults,noatime,acl 0 0" >> /etc/fstab
mount -a


7、写一个脚本
(1) 接受一个以上文件路径作为参数;
(2) 显示每个文件拥有的行数;
(3) 总结说明本次共为几个文件统计了其行数;
#!/bin/bash
# Auther: divent
# 2016-09-17 20:46:43
#
i=(0)
x=0
echo "input \"ok\" to stop eidt"

#循环记录输入存储到到数组中,遇到 ok 停止输入
while :
do
echo  -e "plz input your $[ $x+1 ] file"
read filepath
if [ "$filepath" != "ok" ];then
i[x]=$filepath
let x++
else
break
fi
echo -en "\n"
done

#获取数组长度
echo -e "\nyou set ${#i[@]} filepath"

n=0

#判断文件类型
while [ $n -lt $x ]
do
echo -en "$[  $n+1 ] filepath:${i
}\t|"
if [ ! -e ${i
} ];then
echo -en "Not find file"
elif [ -d ${i
} ];then
echo -en "This is a directory"
elif [ -f  ${i
} ];then
echo -en "Line:$( cat ${i
}|wc -l )"
else
echo "Unknow file type"
fi
let n++
echo -en "\n"
done






8、写一个脚本
(1) 传递两个以上字符串当作用户名;
(2) 创建这些用户;且密码同用户名;
(3) 总结说明共创建了几个用户;

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

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

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

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

13、创建一个由至少两个物理卷组成的大小为20G的卷组;要求,PE大小为8M;而在卷组中创建一个大小为5G的逻辑卷mylv1,格式化为ext4文件系统,开机自动挂载至/users目录,支持acl;
14、新建用户magedu;其家目录为/users/magedu,而后su切换至此用户,复制多个文件至家目录;
15、扩展mylv1至9G,确保扩展完成后原有数据完全可用;
16、缩减mylv1至7G,确保缩减完成后原有数据完全可用;
17、对mylv1创建快照,并通过备份数据;要求保留原有的属主属组等信息;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  作业