马哥2016全新Linux+Python高端运维班第四期-第四次作业
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了马哥2016全新Linux+Python高端运维班第四期-第四次作业相关的知识,希望对你有一定的参考价值。
1、创建一个10G分区,并格式为ext4文件系统;
(1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;
[[email protected] ~]# fdisk /dev/sdc
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 1
First cylinder (1-2610, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): 10G
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (1-10, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-10, default 10):
Using default value 10
Command (m for help): w
The partition table has been altered!
(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;
# mkfs.ext4 -b 2048 -m 2 -L MYDATA /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=MYDATA
OS type: Linux
块大小=2048 (log=1)
分块大小=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 5242880 blocks
104857 blocks (2.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=273678336
320 block groups
16384 blocks per group, 16384 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104,
2048000, 3981312
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
2、创建一个大小为1G的swap分区,并创建好文件系统,并启用之;
# mkswap /dev/sdb2
正在设置交换空间版本 1,大小 = 1048572 KiB
无标签,UUID=a5c89d64-5fda-4ebd-9b00-92231cd57bae
# swapon /dev/sdb2
3、写一个脚
(1)、获取并列出当前系统上的所有磁盘设备;
(2)、显示每个磁盘设备上每个分区相关的空间使用信息;
#!/bin/bash
#
fdisk -l | grep -o "/dev/sd[[:alnum:]]\{2\}"
echo
df -h
4、总结RAID的各个级别及其组合方式和性能的不同;
RAID-0:
读写性能提升;可用空间:N*min(s1,s2.....);N硬盘个数;min最小的空间
无容错能力;最少磁盘数:2,2+
RAID-1:
读性能提升、写性能略有下降;可用空间:1*min(S1,S2.....);
有冗余能力,最少磁盘数:2,2+
RAID-5:
读写性能提升;可用空间(N-1)*min(s1,s2....);有容错能力:1块磁盘
最少磁盘数:3,3+1
RAID-6:
读写性能提升;可用空间(N-2)*min(s1,s2....);
有容错能力:2块磁盘;最少磁盘数:4,4+
混合型RAID
RAID-10:
读写性能提升;可用空间:N*min(s1,s2....)/2
有容错能力:每组镜像最多只能坏一块;最少磁盘数:4,4+
5、创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k;
# mdadm -C /dev/md1 -a yes -c 128 -x 1 -l 1 -n 2 /dev/sdb{1,2,3}
6、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;
# mdadm -C /dev/md5 -n 3 -l 5 -a yes /dev/sdb{1,2,3} -c 256
# mkfs.ext4 /dev/md5
# echo "/dev/md5 /backup ext4 noatime,acl 0 0" &>> /etc/fstab
7、写一个脚本
(1) 传递两个以上字符串当作用户名;(2) 创建这些用户;且密码同用户名;
(3) 总结说明共创建了几个用户;
#!/bin/bash
for n in $*;do
if [ $(echo "$n" | wc -c) -le 3 ];then
echo "用户名不得低于2个字符串"
exit 1
elif
id $n >> /dev/null;then
echo "用户名$n 已存在"
exit 1
else
useradd $n
echo "$n" | passwd --stdin $n >> /dev/null
echo "用户$n 已添加,密码同用户名,请及时修改!"
fi
done
echo "本次添加$# 个用户"
8、写一脚本,分别统计/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#号开头的行数之和,以及总的空白行数;
#!/bin/bash
export sum1=0
export sp=0
for i in $#;do
let sum1+=$(cat $* | grep -o "^#.*" | wc -l)
let sp+=$(cat $* | egrep -o "^[[:space:]].*" | wc -l)
done
echo "给出的文档中以#开头的行数和为:$sum1"
echo "给出的文档中以空格开头的行数和为:$sp"
9、写一个脚本,显示当前系统上所有,拥有附加组的用户的用户名;并说明共有多少个此类用户;
#!/bin/bash
export sum=0
for i in $(cat /etc/passwd | cut -d: -f1);do
if [ $(groups $i | wc -w) -gt 3 ];then
echo "$(groups $i)"
let sum+=1
fi
done
echo "此类用户共有$sum 个"
10、创建一个由至少两个物理卷组成的大小为20G的卷组;要求,PE大小为8M;而在卷组中创建一个大小为5G的逻辑卷mylv1,格式化为ext4文件系统,开机自动挂载至/users目录,支持acl;
#!/bin/bash
#
declare -i count
count1=`cat /etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/fstab|grep "^#" |wc -l`
count2=`cat /etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/fstab|grep "^$" |wc -l`
echo -e "The sum of lines is $count1\nThe sum of black lines is $count2"
11、扩展mylv1至9G,确保扩展完成后原有数据完全可用;
# lvexpand -L 9G /dev/myvg/mylv1
12、缩减mylv1至7G,确保缩减完成后原有数据完全可用;
# umount /dev/vgtest/mylv1
# e2fsck -f /dev/myvg/mylv1
# resize2fs /dev/myvg/mylv1 7G
# lvreduce -L 7G /dev/myvg/mylv1
# mount -a
13、对mylv1创建快照,并通过备份数据;要求保留原有的属主属组等信息;
[[email protected] ~]# lvcreate -L 1G -s -n mylv101 /dev/myvg/mylv1
Logical volume "mylv101" created
14、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)
| a、修改/etc/sysconfig/network配套文件中的hostname b、修改/etc/sysconfig/network-script/ifcfg-eth0IPADDR,GETWAY ,NATMARSK, DNS{1,2,3} c、service network restart 重启网络服务 15、为Linux主机配置网络信息的方式有哪些,请描述各个过程。 1、命令行命令临时修改网络地址,退出当前shell后,设置将失效
2、ip addr add 192.168.50.199/24 dev eth0 3、修改/etc/sysconfig/network-script/ifcfg-eth0文件,手动指定IP address, getway , netmask, dns 16、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态; #!/bin/bash # for i in {1..254};do ping -c 1 -w 1 "192.168.1.$i" > /dev/null if [ $? -eq 0 ];then echo -e "\033[0;32;1m 172.16.250.$i is up \033[0m" else echo -e "\033[0;31;1m 172.16.250.$i is down \033[0m" fi done 17、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。 ifconfig 常见用法: 查看网卡信息:ifconfig [interface] 查看所有网卡信息:ifconifg -a 开启或关闭网卡:ifconfig IFACE [up|down] 配置网卡参数:ifconfig interface [aftype]options | address ... 配置网卡IP地址: ifconfig IFACE IP/mask [up] ifconfig IFACE IP network MASK
ip:显示/配置路由,接口,策略路由和隧道 常见用法: 网卡添加多一个IP地址,并设置别名为eth0:0 ip addr IPADDR/MASK dev eth0label ‘eth0:0‘ 显示网卡设备的信息: ip addr show 清除IP地址信息:ip addr flush dev interface 添加路由:ip route add TARGET via GW devINTERFACE src SOURCE_IP 删除单条路由: ip route del TARGET
route:路由管理命令 查看路由条目:route -n 添加路由条目:route add route add [-net|-host] target[netmask Nm] [gw Gw] [[dev] if] 删除路由:route del route del [-net|-host] target [gwGw] [netmask Nm] [[dev] If]
netstat :显示网络连接、路由表、接口数据统计、伪装连接、组播成员关系 常用选项: -t : 显示TCP协议相关已建立的连接(ESTABLISHED) -u : 显示UDP协议相关已建立的连接(ESTABLISHED) -r : 显示rawsocket(裸套接字)相关已建立的连接(ESTABLISHED) -l : 处于监听状态的连接 -n : 以数字显示IP和协议端口(默认显示协议名称,如SSH) -a : 显示所有状态的连接 -e : 扩展格式 -p : 显示相关进程及PID
常用组合: -tan , -uan , -tnl, -unl,-tunlp
ss:网络状态查看工具 常见选项: -t : tcp协议相关 -u : udp协议相关 -w : 裸套接字相关 -x : unix sock相关 -l : listen状态的连接 -a : 所有 -n : 数字格式 -p : 相关的程序及PID -e : 扩展的信息 -m : 内存用量 -o : 计时器信息 常用组合: -tan , -tanl , -tanlp ,-uan,-tunlp 18、写一个脚本,完成以下功能 (1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;(4) 分别统计S开头和K开头的文件各有多少; #!/bin/bash declare-i k=0,s=0 for i in$(ls /etc/rc.d/rc3.d/K* | grep -o "[^/]*$");do echo "$i stop" let k++ done for j in$(ls /etc/rc.d/rc3.d/S* | grep -o "[^/]*$");do echo "$j start" let s++ done echo "S开头的文件有$s个" echo "K开头的文件有$k个" 19、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来; #!/bin/bash 2 #author:BaoZhang 3 # 4 online_number=0 5 no_online_number=0 6 for i in192.168.88.{100..200} 7 do 8 ping -c 2 -W 2 $i &>/dev/null 9 if[ $? -eq0 ];then 10 echo"$i is onlline" 11 letonline_number++ 12 else 13 echo"$i not online" 14 letno_online_number++ 15 fi 16 done 17 echo "$online_number host online,$no_online_number not online " 18 20、打印九九乘法表; 1 #!/bin/bash 2 #author:BaoZhang 3 # 4 for((i=1;i<10;i++)) 5 do 6 for((j=1;j<=i;j++)) 7 do 8 echo -n "$j*$i=$[ $j * $i ]" 9 echo -n " " 10 done 11 echo "" 12 done |
以上是关于马哥2016全新Linux+Python高端运维班第四期-第四次作业的主要内容,如果未能解决你的问题,请参考以下文章
马哥2016全新Linux+Python高端运维班第四期-第五次作业
马哥2016全新Linux+Python高端运维班第四期-第四次作业
马哥2016全新Linux+Python高端运维班第四周作业
马哥2016全新Linux+Python高端运维班第九周作业