Linux运维班第四次作业
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux运维班第四次作业相关的知识,希望对你有一定的参考价值。
一、创建一个10G分区,并格式为ext4文件系统;
(1)要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl;
# mkfs.ext4 -b -m 2 -L MYDATA/dev/sdb
# e2label/dev/sdb
# df -lhT
(2)挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;
# mount -o noatime,noexec,acl /dev/sdb/data/mydata
二、创建一个大小为1G的swap分区,并创建好文件系统,并启用之;
# fdisk /dev/sdb
创建swap分区
# mkswap /dev/sdb1
最后再重读swap分区
# swapon /dev/sdb1
启用前:
启用后:
三、写一个脚本
(1)获取并列出当前系统上的所有磁盘设备;
(2)显示每个磁盘设备上每个分区相关的空间使用信息;
#!/bin/bash
#
echo "The Current system all disk device"
cat /proc/partitions
read -p "Please Enter need to view a disk device: "diskname
[ -z $diskname ] && exit 1
iffdisk -l | grep "$diskname" &> /dev/null; then
fdisk-l /dev/$diskname
else
echo "Wrong disk device."
fi
四、总结RAID的各个级别及组合方式和性能的不同;
常见的RAID级别有RAID0、RAID1、RAID5、RAID10、RAID50等,下面分别进行说明:
1、RAID0,也叫条带卷;至少需要两块及以上的磁盘组合使用,它的特性在于存储数据时,数据被切割为多个chunk,并把它们分别存放到不同的磁盘中;较大地提升了读写数据的性能,成倍地提升了磁盘可用空间,但是却无半点的数据容错能力;
2、RAID1,镜像卷;同样地至少需要两块以上的磁盘组合使用,它的数据被相同的存储到不同的磁盘上,即使某个磁盘损坏,也还能读出数据,而写数据时,因为要写两份数据,故性能略微下降;所以,它的特性相较与RAID0,写性能略微下降,读性能不变;提供了一定的数据冗余能力,而存储空间却只由其中最小的磁盘容量决定,提高了成本;
3、RAID5,至少需要三块及以上的磁盘组合而成;相较与RAID4把数据校验码专门存放在一个磁盘上,RAID5则把数据chunk和数据校验码均匀分散在不同的磁盘上,有效回避了数据校验专用盘负载过大的问题;它的读写性能与RAID0不相上下,它的磁盘容量为最小的磁盘的容量的(N-1)倍;
4、RAID10,表示RAID1与RAID0组合使用,先镜像,后条带化;至少需要4块硬盘组合使用;它同样使读写能力得到提升,并提供了一定的冗余能力,但每组镜像磁盘最多只能坏一块;
5、RAID50,RAID5和RAID0的组合使用,最少需要6块磁盘组合而成;这种设计可兼顾数据可靠性和较高地读写性能,组内发生某块硬盘故障,重建恢复的时间也较快;但设计较复杂,不容易实现;
五、创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128K;
添加两块磁盘sdb、sdc,并设置为Linux Raid文件系统类型
创建RAID1,并指定冗余磁盘的个数(RAID1下chunk默认为512k,不能被设置)
# mdadm -C /dev/md0-l1 -n2 /dev/sd{b,c}
# mdadm -D /dev/md0 查看RAID设备信息
六、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;
① 添加磁盘sdb、sdc、sdd,创建RAID5阵列
# mdadm -C /dev/md0 -l5 -n3 -chunk=256/dev/sd{b,c,d}
# mdadm -D /dev/md0 查看RAID详细信息
② 格式化磁盘
# mkfs.ext4 /dev/md0
③ 设置自动挂载和相关特性
软RAID有自己的配置文件:/etc/mdadm.conf,默认情况下需要自行设置:
# mdadm -D /dev/md0 | grep UUID >/etc/mdadm.conf
# vi /etc/mdadm.conf
最后把配置添加到/etc/fstab文件中:
七、写一个脚本
(1)传递两个以上字符串当作用户名;
(2)创建这些用户,且密码同用户名;
(3)总结说明共创建了几个用户;
#!/bin/bash
#
read -p "Please enter two username:" user1 user2
if id $user1 -o id $user2 &> /dev/null; then
echo "User already exists."
exit 1
else
useradd $user1 &> /dev/null
echo "$user1" | passwd --stdin$user1 &> /dev/null
echo "$user1 created."
useradd $user2 &> /dev/null
echo "$user2" | passwd --stdin$user2 &> /dev/null
echo "$user2 created."
fi
八、写一个脚本,分别统计/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/
functions和/etc/fstab文件中以#号开头的行数之和,以及总的空白行数;
#!/bin/bash
#
a=`cat/etc/rc.d/rc.sysinit | grep ‘^#‘ | wc -l`
b=`cat/etc/rc.d/init.d/functions | grep ‘^#‘ | wc -l`
c=`cat /etc/fstab |grep ‘^#‘ | wc -l`
let d=a+b+c
echo "Thecount of the beginning the line # is: $d"
a=`cat/etc/rc.d/rc.sysinit | grep ‘^$‘ | wc -l`
b=`cat/etc/rc.d/init.d/functions | grep ‘^$‘ | wc -l`
c=`cat /etc/fstab |grep ‘^$‘ | wc -l`
let d=a+b+c
echo "Thecount of the blank line is: $d"
九、写一个脚本,显示当前系统上所有,拥有附加组的用户的用户名,并说明共有多少个此类用户;
#!/bin/bash
#
declare -i a=0
for i in `cat/etc/passwd | cut -d‘:‘ -f1`
do
ifid $i &> /dev/null; then
echo"$i have additional group."
leta++
fi
done
echo "Thetotal of $a users have additional group."
十、创建一个由至少两个物理卷组成的大小为20G的卷组;要求PE大小为8M,而在卷组中创建一个大小为5G的逻辑卷mylv1,格式化为ext4文件系统,开机自动挂载至/users目录,支持acl;
# pvcreate/dev/sdb1 /dev/sdc1
# pvdisplay –v
# vgcreate -s 8M myvg /dev/sdb1 /dev/sdc1
# vgdisplay –v
# lvcreate -L 5G -nmylv1 myvg
# lvdisplay –v
# mkfs.ext4 /dev/myvg/mylv1
添加开机启动配置
# echo "/dev/mapper/myvg-mylv1 /users ext4 defaults,acl 0 0" >> /etc/fstab
十一、扩展mylv1至9G,确保扩展完成后原有数据完全可用;
操作之前分区已有数据
# lvresize -L 9G /dev/myvg/mylv1
# resize2fs /dev/myvg/mylv1
十二、缩减mylv1至7G,确保缩减完成后原有数据完全可用;
# umount /users
# e2fsck -f /dev/myvg/mylv1
# resize2fs /dev/myvg/mylv1 7G
# lvreduce -L 7G /dev/myvg/mylv1
# mount /dev/myvg/mylv1
十三、对mylv1创建快照,并通过备份数据,要求保留原有的属主属组等信息;
# lvcreate -s -L 1G -nmylv1-snap /dev/myvg/mylv1
# tar -Jcf users.tar.xz /users/*
十四、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤(手动指定的方式)
以虚拟机为例:
1、设置虚拟机网卡的连接方式,NAT模式一般用于共享主机的网络连接状态;
2、设置虚拟机与主机之间的通信IP地址段;
相对应地,把主机上的VMnet8虚拟网卡配置成与上图在同一网段下;
3、设置Linux主机的IP地址;
编辑/etc/sysconfig/network-scripts/ifcfg-IFACE文件
根据自身情况手动修改如下配置:
BOOTPROTO:static表示静态IP方式,dhcp为由系统自动获取;
ONBOOT:yes表示系统启动时自动启用该网卡;
IPADDR:配置网卡IP地址;
NETMASK:子网掩码;
GATEWAY:默认网关;
DNS(可选):DNS服务器;
完成之后,重启网卡服务
十五、为Linux主机配置网络信息的方式有哪些,请描述各个过程;
1、用ifconfig命令指定
# ifconfig IFACE ip_address netmask
2、用ip命令指定
# ip addr addip_address netmask dev IFACE
3、修改配置文件指定
/etc/sysconfig/network-scripts/ifcfg-IFACE
DEVICE:网卡设备名;
BOOTPROTO:地址配置协议,常用的为dhcp,static等;
ONBOOT:表示系统启动是否激活该设备;
IPADDR:指明IP地址;
NETMASK:子网掩码;
GATEWAY:默认网关;
配置完成之后,需重启该网卡设备;
十六、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机在线状态;
在线的主机使用绿色显示;
不在线的主机使用红色显示;
#!/bin/bash
#
declare -i i=1
while [ $i -le 254 ]; do
if ping 172.16.250.$i -c 1 &> /dev/null; then
echo-e "\033[32m The host 172.16.250.$i is online.\033[0m"
leti++
else
echo-e "\033[31m The host 172.16.250.$i is down.\033[0m"
leti++
fi
done
十七、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法;
1、ifconfig 网络配置和查看工具
示例:#ifconfig 显示所有处于活动的网络接口设备信息
# ifconfig -a 显示所有网络接口的设备信息
# ifconfig eth0 只显示eth0接口的信息
# ifconfig eth0IPADDR NETMASK 配置eth0的IP和掩码
2、IP 网络配置和查看工具(比ifconfig更强大)
示例:# ip linkset dev IFACE up/down 启用/禁用某个网络接口
# ip link show[dev IFACE] [up] 查看某接口的状态信息
# ip addr add IPADDR NETMASK dev IFACE[label LABEL_NAME]
为网络接口指定IP地址(和别名)
# ip addr delIPADDR NETMASK dev IFACE 删除某接口的IP地址
# ip addr show[dev IFACE] 查看较详细地接口状态信息
# ip route addTARGET via GW dev IFACE src SOURCE_IP
添加源IP到目标网络的路由策略
# ip route adddefault via GW dev IFACE 添加默认网关
# ip route delTARGET 删除到目标网络的路由
# ip routeshow 查看当前系统上的路由配置
# ip route flush [devIFACE] 清空与某个接口相关的路由配置
# ip route flush [viaPREFIX] 清空与某个网关相关的路由配置
3、route 路由管理工具
示例:
# route -n 查看当前系统的路由表
# route add -host TARGET gw GATEWAY dev IFACE 添加目标主机的路由
# route add -net 192.168.0.0 netmask 255.255.255.0 gw172.16.0.1 dev IFACE
添加从本地网络接口到目标网络的路由
# route add default gw GATEWAY 添加默认路由
# route del [-host | -net] TARGET [netmask Nm] 删除目标主机或网络的路由
4、netstat 查看网络状态工具
示例:# netstat -tan查看TCP相关的进程
# netstat -uan查看UDP相关的进程
# netstat -tnl 查看TCP处于监听状态的连接
# netstat -i 显示所有网络接口的状态统计信息
# netstat-IIFACE 显示IFACE接口的状态统计信息
5、ss 网络状态查看工具(比netstat返回结果快)
示例:# ss -tan 查看所有TCP相关的进程
# ss -tanl 查看TCP中处于监听状态的连接
# ss -tanlp 查看TCP中处于监听状态连接的相关程序及PID号
# ss -uan 查看所有UDP相关的进程
6、nmcli CentOS7的地址配置工具
示例:# nmclidevice stat 查看网络接口连接状态
# nmcli con[up/down] IFACE 启用或禁用网络接口
# nmcli con modifyIFACE [+/-] ipv4.addresses IPADDR/NETMASK
为网络接口IFACE增加或删除IP地址
# nmcli con modifyIFACE ipv4.gateway GATEWAY
为网络接口IFACE添加网关
# nmcli con modifyIFACE ipv4.dns DNSSERVER
为网络接口IFACE添加DNS服务器
十八、写一个脚本,完成以下功能:
(1)假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;
(2)显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;
(3)显示所有以S开头的文件的文件名,并且给其附加一个start字符串;
(4)分别统计S开头和K开头的文件各有多少;
#!/bin/bash
#
declare -i x
declare -i y
ls /etc/rc.d/rc3.d/ | awk ‘/^K/{print $1,"stop"}‘
ls /etc/rc.d/rc3.d/ | awk ‘/^S/{print $1,"start"}‘
x=`ls /etc/rc.d/rc3.d/ | grep ‘^K‘ | wc -l`
y=`ls /etc/rc.d/rc3.d/ | grep ‘^S‘ | wc -l`
echo "The Number of beginning with K is:$x"
echo "The Number of beginning with S is:$y"
十九、写一个脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;
#!/bin/bash
#
declare -i i=20
echo "Checking host stat,One moment please."
for i in {20..100}
do
ping 172.16.250.$i -c 1 -t 1 &>/dev/null
if [ $? -eq 0 ]; then
echo "The host 172.16.250.$i is online."
fi
let i++
done
echo "Script execution."
二十、打印九九乘法表;
#!/bin/bash
#
declare -i i=1
declare -i j=1
for i in {1..9}
do
for((j=1;j<=$i;j++)); do
echo -e -n"$i*$j=$[$i*$j]\t"
done
let i++
echo
done
本文出自 “Linux高端运维培训” 博客,请务必保留此出处http://hhclab.blog.51cto.com/6743827/1909373
以上是关于Linux运维班第四次作业的主要内容,如果未能解决你的问题,请参考以下文章
马哥2016全新Linux+Python高端运维班第四期-第五次作业
马哥2016全新Linux+Python高端运维班第四期-第六次作业