首页 > 代码库 > 马哥2016全新Linux+Python高端运维班第七周作业

马哥2016全新Linux+Python高端运维班第七周作业

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


# fdisk device

子命令:管理功能

p: print, 显示已有分区;

n: new, 创建

d: delete, 删除

w: write, 写入磁盘并退出

q: quit, 放弃更新并退出

m: 获取帮助

l: 列表所分区id

t: 调整分区id

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

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

mke2fs:ext系列文件系统专用管理工具

-t {ext2|ext3|ext4}

-b {1024|2048|4096}

-L ‘LABEL‘ 设置卷标名

-j: 相当于 -t ext3

mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3

-i #: 为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小;

-N #:为数据空间创建个多少个inode;

-m #: 为管理人员预留的空间占据的百分比;

-O FEATURE[,...]:启用指定特性

-O ^FEATURE:关闭指定特性

技术分享

挂载,先创建挂载点

#mkdir -p /data/mydata

技术分享

技术分享

技术分享

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

技术分享

3、写一个脚本

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

#fdisk -l | grep ^/dev/[hs]d*

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

#df -h | grep ^/dev/[hs]d*

技术分享

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个以上


混合类型

RAID-10:

读、写性能提升

可用空间:N*min(S1,S2,...)/2

有容错能力:每组镜像最多只能坏一块;

最少磁盘数:4个及4个以上

RAID-01:


RAID-50、RAID7


JBOD:Just a Bunch Of Disks

功能:将多块磁盘的空间合并一个大的连续空间使用;

可用空间:sum(S1,S2,...)


常用级别:RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD


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

mdadm:模式化的工具

命令的语法格式:mdadm [mode] <raiddevice> [options] <component-devices>

支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10; 


模式:

创建:-C

装配: -A

监控: -F

管理:-f, -r, -a


<raiddevice>: /dev/md#

<component-devices>: 任意块设备



-C: 创建模式

-n #: 使用#个块设备来创建此RAID;

-l #:指明要创建的RAID的级别;

-a {yes|no}:自动创建目标RAID设备的设备文件;

-c CHUNK_SIZE: 指明块大小;

-x #: 指明空闲盘的个数;


例如:创建一个10G可用空间的RAID5;


-D:显示raid的详细信息;

mdadm -D /dev/md#

技术分享

技术分享


6、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,

要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;

技术分享

技术分享

技术分享

格式化为ext4:

技术分享

创建挂载点:#mkdir /backup

技术分享

也可以编辑:vi /etc/fstab,设置之后再用mount -a更新下即可。

技术分享

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、写一个脚本,显示当前系统上所有,拥有附加组的用户的用户名;并说明共有多少个此类用户;

无附加组用户

# groups root
root : root

有附加组用户

# groups bin
bin : bin daemon sys

无附加组用户执行结果为1

# groups root | awk -F: ‘{print $2}‘|awk ‘{print NF}‘
1

有附加组用户执行结果大于1

# groups bin | awk -F: ‘{print $2}‘|awk ‘{print NF}‘

技术分享

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

技术分享

技术分享

技术分享

技术分享

技术分享


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

#useradd -b /users magedu 创建用户,b选项是指定用户家目录

技术分享

技术分享

15、扩展mylv1至9G,确保扩展完成后原有数据完全可用;

        扩展逻辑卷:

# lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME

# resize2fs /dev/VG_NAME/LV_NAME

技术分享

16、缩减mylv1至7G,确保缩减完成后原有数据完全可用;


缩减逻辑卷:

# umount /dev/VG_NAME/LV_NAME

# e2fsck -f /dev/VG_NAME/LV_NAME

# resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]

# lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME

# mount

技术分享

技术分享

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

快照:snapshot

lvcreate -L #[mMgGtT] -p r -s -n snapshot_lv_name original_lv_name

技术分享



本文出自 “11822904” 博客,请务必保留此出处http://11832904.blog.51cto.com/11822904/1853741

马哥2016全新Linux+Python高端运维班第七周作业