【Linux基础】第七周作业
2016-09-19 20:19
429 查看
1、创建一个10G分区,并格式为ext4文件系统;(1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;
-b<区块大小> 指定区块大小,单位为字节。-c 检查是否有损坏的区块。-f<不连续区段大小> 指定不连续区段的大小,单位为字节。-F 不管指定的设备为何,强制执行mke2fs。-i<字节> 指定"字节/inode"的比例。-N<inode数> 指定要建立的inode数目。-L<标签> 设置文件系统的标签名称。-m<百分比值> 指定给管理员保留区块的比例,预设为5%。-M 记录最后一次挂入的目录。-q 执行时不显示任何信息。-t 指定创建文件系统类型-r 指定要建立的ext2文件系统版本。-R=<区块数> 设置磁盘阵列参数。-S 仅写入superblock与group descriptors,而不更改inode able inode bitmap以及block bitmap。-v 执行时显示详细信息。-V 显示版本信息。挂载:
2、创建一个大小为1G的swap分区,并创建好文件系统,并启用之;
3、写一个脚本(1)、获取并列出当前系统上的所有磁盘设备;(2)、显示每个磁盘设备上每个分区相关的空间使用信息;
4、总结RAID的各个级别及其组合方式和性能的不同;RAID0 数据切分存在两块盘,读写性能提升,空间每块硬盘直接叠加,无容错能力,最少需要2块盘组合。增加需要2的倍数。RAID1 数据写时每块硬盘各保存一份,写性能下降,读取性能提升,空间减半,有容错能力,一块坏,不影响另一块使用,最少2块盘,增加需要2的倍数。RAID5 分布式奇偶校验独立磁盘结构,数据交叉存储,读写性能提升,空间磁盘数量N-1,有容错能力,只能坏1块盘,最少需要3块磁盘组合。RAID10 先进行raid1,再做raid0,具有两者特性,读写性能提升,有容错能力,磁盘利用率50%。RAID01 少用。 5、创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k;添加3块10G的磁盘sdb,sdc,sdd
6、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;
加上:
7、写一个脚本(1) 接受一个以上文件路径作为参数;(2) 显示每个文件拥有的行数;(3) 总结说明本次共为几个文件统计了其行数;
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;
15、扩展mylv1至9G,确保扩展完成后原有数据完全可用;
16、缩减mylv1至7G,确保缩减完成后原有数据完全可用;
17、对mylv1创建快照,并通过备份数据;要求保留原有的属主属组等信息;
fdisk /dev/sdb n 新建分区 p 主分区 1 主分区号 +10G 分区大小10G w 保存并退出创建文件系统:
mke2fs –t ext4 –b 2048 –m 2 –L MYDATAmke2fs [-cFMqrSvV][-b <区块大小>][-f <不连续区段大小>][-i <字节>][-N <inode数>][-l <文件>][-L <标签>][-m <百分比值>][-R=<区块数>][ 设备名称][区块数]
-b<区块大小> 指定区块大小,单位为字节。-c 检查是否有损坏的区块。-f<不连续区段大小> 指定不连续区段的大小,单位为字节。-F 不管指定的设备为何,强制执行mke2fs。-i<字节> 指定"字节/inode"的比例。-N<inode数> 指定要建立的inode数目。-L<标签> 设置文件系统的标签名称。-m<百分比值> 指定给管理员保留区块的比例,预设为5%。-M 记录最后一次挂入的目录。-q 执行时不显示任何信息。-t 指定创建文件系统类型-r 指定要建立的ext2文件系统版本。-R=<区块数> 设置磁盘阵列参数。-S 仅写入superblock与group descriptors,而不更改inode able inode bitmap以及block bitmap。-v 执行时显示详细信息。-V 显示版本信息。挂载:
mkdir –p /data/mydata/ mount –o noexec –o nodiratime –o acl /dev/sdb1 /data/mydata
2、创建一个大小为1G的swap分区,并创建好文件系统,并启用之;
fdisk /dev/sdb n p 2 +1G t 调整磁盘类型 82 swap磁盘类型 w
mkswap /dev/sdb2 #设置交换分区 swapon /dev/sdb2 #启用交换分区 free –m #查看当前交换空间可以写入/etc/fstab,在引导时启用
/dev/sdb2 swap swap defaults 0 0
3、写一个脚本(1)、获取并列出当前系统上的所有磁盘设备;(2)、显示每个磁盘设备上每个分区相关的空间使用信息;
#!/bin/bash #Description :list all disks device Version:0.1 disk=$(fdisk -l | grep "Disk /dev/[sh]d" | cut -d: -f1) echo -e "total:\t $disk" disused=$(fdisk -l | grep "/dev/sd[a-z][1-9]"| awk '{print $1}'| df -h) echo -e "used: \t $disused"
4、总结RAID的各个级别及其组合方式和性能的不同;RAID0 数据切分存在两块盘,读写性能提升,空间每块硬盘直接叠加,无容错能力,最少需要2块盘组合。增加需要2的倍数。RAID1 数据写时每块硬盘各保存一份,写性能下降,读取性能提升,空间减半,有容错能力,一块坏,不影响另一块使用,最少2块盘,增加需要2的倍数。RAID5 分布式奇偶校验独立磁盘结构,数据交叉存储,读写性能提升,空间磁盘数量N-1,有容错能力,只能坏1块盘,最少需要3块磁盘组合。RAID10 先进行raid1,再做raid0,具有两者特性,读写性能提升,有容错能力,磁盘利用率50%。RAID01 少用。 5、创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k;添加3块10G的磁盘sdb,sdc,sdd
mdadm -C /dev/md1 -n3 -l 1 –c 128 -x1 /dev/sd{b,c,d}
6、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;
mdadm -C /dev/md5 -n3 -l 5 -c 256 mke2fs -t ext4 /dev/md5 mkdir /backup/ mount -o acl,nodiratime /dev/md5 /backup/编辑/etc/fstab文件
加上:
/dev/md5 /backup/ ext4 defaults 0 0
7、写一个脚本(1) 接受一个以上文件路径作为参数;(2) 显示每个文件拥有的行数;(3) 总结说明本次共为几个文件统计了其行数;
#!/bin/bash if [[ $# -eq 0 ]]; then echo -e "\nusage: sh $0 <FILE...>\n" exit 1else for i in "$@"; do echo ‘lines:’`wc -l ${i}` done echo "Total number of files: $#"fi
8、写一个脚本(1) 传递两个以上字符串当作用户名;(2) 创建这些用户;且密码同用户名;(3) 总结说明共创建了几个用户;
#!/bin/bash #Version:v0.1 Num_user=0if [[ $# -le 1 ]]; then echo -e "\nusage: sh $0 <arg1> <arg2>..." echo -e "Pls enter at least two strings.\n" exit 1else for i in "$@"; do useradd ${i} &>/dev/null if [[ $? -eq 0 ]]; then let Num_user+=1 echo "${i}" | passwd --stdin ${i} &>/dev/null fi done echo "The number of users created: ${Num_user}" echo -e "User lists:" echo "$*" | sed -r 's/[[:space:]]+/\n/g'fi脚本运行结果:
[root@localhost scripts]# sh adduser.sh lanin1 lanin2 lanin3 The number of users created: 3 User lists: lanin1 lanin2 lanin3
9、写一个脚本,新建20个用户,visitor1-visitor20;计算他们的ID之和;
#!/bin/bash #Description : #Version:0.1 SUM=0 for i in visitor{1..20};do useradd $i let SUM+=`id -u $i` done echo "the sum of uid: $SUM"脚本运行结果:
[root@localhost scripts]# sh -x userid.sh + SUM=0 + for i in 'visitor{1..20}' + useradd visitor1 ++ id -u visitor1 + let SUM+=504 ... ... + for i in 'visitor{1..20}' + useradd visitor20 ++ id -u visitor20 + let SUM+=523 + echo 'the sum of uid: 10270' the sum of uid: 10270
10、写一脚本,分别统计/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#号开头的行数之和,以及总的空白行数;
grep '^#' /etc/rc.d/rc.sysinit |wc -l 以#号开头的行 grep '^$' /etc/rc.d/rc.sysinit |wc -l 空白行
#!/bin/bash #v0.1 # declare -a array=( '/etc/rc.d/rc.sysinit' '/etc/rc.d/init.d/functions' '/etc/fstab' ) for i in {0..2};do echo "the number of ${array[$i]} # first: `grep '^#' ${array[$i]} |wc -l`" echo "the number of ${array[$i]} blank : `grep '^$' ${array[$i]} |wc -l`" done脚本运行结果:
[root@localhost scripts]# sh statistic_line.sh the number of /etc/rc.d/rc.sysinit # first: 44 the number of /etc/rc.d/rc.sysinit blank : 100 the number of /etc/rc.d/init.d/functions # first: 43 the number of /etc/rc.d/init.d/functions blank : 105 the number of /etc/fstab # first: 7 the number of /etc/fstab blank : 1
11、写一个脚本,显示当前系统上所有默认shell为bash的用户的用户名、UID以及此类所有用户的UID之和;
grep ‘/bash$’ /etc/passwd |cut -d: -f1,3 grep ‘/bash$’/etc/passwd |awk -F‘{print $1,$3}’
[root@localhost scripts]# grep '/bash$' /etc/passwd|awk -F: 'BEGIN{sum=0}{sum=sum+$3;print $1,$3}END{print sum}' root 0 lanin 500 lanin1 501 lanin2 502 lanin3 503 2006
12、写一个脚本,显示当前系统上所有,拥有附加组的用户的用户名;并说明共有多少个此类用户;
#!/bin/bash #v0.1 Sum_user=0 echo "attach group list:" while read line; do User_name=$(echo ${line} | cut -d: -f1) Num=$(id -G ${User_name} | wc -w) if [[ ${Num} -eq 2 ]]; then echo "${User_name}" let Sum_user+=1 fi done < /etc/passwd echo "The number of user: ${Sum_user}"脚本运行结果:
[root@localhost scripts]# sh attach_group.sh attach group list: adm postfix The number of user: 2
13、创建一个由至少两个物理卷组成的大小为20G的卷组;要求,PE大小为8M;而在卷组中创建一个大小为5G的逻辑卷mylv1,格式化为ext4文件系统,开机自动挂载至/users目录,支持acl;
[root@localhost ~]# pvcreate /dev/sdb /dev/sdc 物理卷 [root@localhost ~]# vgcreate -s 8M myvg /dev/sd{b,c} 卷组 [root@localhost ~]# lvcreate -L 5G -n mylv1 /dev/myvg 逻辑卷 [root@localhost ~]# mkfs.ext4 /dev/myvg/mylv1 格式化为ext4 [root@localhost ~]# echo "/dev/myvg/mylv1 /users ext4 defaults,acl,nodiratime 0 0" >> /etc/fstab 开机自动挂载14、新建用户magedu;其家目录为/users/magedu,而后su切换至此用户,复制多个文件至家目录;
[root@localhost scripts]# mkdir /users/ [root@localhost scripts]# useradd magedu -d /users/magedu [root@localhost scripts]# su - magedu [magedu@localhost ~]$ cp -R /etc/rc.d/rc3.d/ ~ [magedu@localhost ~]$ ls rc3.d
15、扩展mylv1至9G,确保扩展完成后原有数据完全可用;
[root@localhost ~]# cp /etc/fstab ./ [root@localhost ~]# lvextend -L +4G -n /dev/myvg/mylv1 [root@localhost ~]# resize2fs /dev/myvg/mylv1
16、缩减mylv1至7G,确保缩减完成后原有数据完全可用;
[root@localhost ~]# umount /users [root@localhost ~]# e2fsck -f /dev/myvg/mylv1 [root@localhost ~]# resize2fs /dev/myvg/mylv1 7G [root@localhost ~]# lvreduce -L 7G -n /dev/myvg/mylv1
17、对mylv1创建快照,并通过备份数据;要求保留原有的属主属组等信息;
[root@localhost ~]# lvcreate -L 3G -p r -s -n mylv1_bak /dev/myvg/mylv1
相关文章推荐
- Linux 内核 作业 第七周
- Linux基础--进程管理和作业控制
- Linux-C基础知识学习:C语言作业-输入m、n,并把m~n之间的不能被3整除的数输出
- Linux-C基础知识学习:C语言作业-从键盘输入一行字符,统计其中有多少个字母, 数字,空格(用数组实现,gets)。
- Linux-C基础知识学习:C语言作业-将5个学生成绩保存在一个数组中,单独实现一个计算平均成绩的average函数, 在main函数中获取该函数返回的平均值,并打印。
- 《Linux 内核分析》课程作业(1)——计算机基本原理和汇编基础
- 马哥2016全新Linux+Python高端运维班第七周作业
- Linux-C基础知识学习:C语言作业-输入n,打印n行*,每行*数与当前行数相等
- Linux-C基础知识学习:C语言作业-用for循环完成:输入10个数,求它们的和并输出
- 马哥2016全新Linux+Python高端运维班第七周作业
- 《OD学hadoop》第一周0626 作业二:Linux基础
- 【Linux基础】第三周作业
- 【Linux基础】第二周作业
- Linux-C基础知识学习:C语言作业-把100~200之间的不能被3整除的数输出
- Linux-C基础知识学习:C语言作业-输入三角形底和高,输出三角形面积
- 【土狗之路】coursera上C语言基础第七周作业
- 【Linux基础】作业二
- 【Linux基础】第五周作业
- 【Linux基础】第六周作业
- linux第七周作业