M43 第一阶段考试
一。解答题
1、统计当前主机的TCP协议网络各种连接状态出现的次数
- netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
- netstat -nat | sed -nr '/^tcp/p' | sed -nr 's/.* ([[:alpha:]]+).*/\1/p' |sort
- |uniq -c
- ss -tan |tail -n +2|cut -d" " -f1|sort| uniq -c
2、编译源码包过程介绍。采用源码包编译的方式安装软件包时,有哪些基本过程、各自的作用是什么?
- tar 解包:解压、释放安装包内的文件
- ./configure 配置:针对当前系统环境指定安装目录、选择功能等设置。
- make 编译:将源代码编译成二进制的可执行程序、库文件等数据。
- make install:将编译好的程序文件、配置文档等复制到对应的安装目录。
3、 为什么说 TCP 协议比 UDP 协议通讯更可靠,并简述 TCP 三次握手和四次挥手的网络连接和断开过
程。
- 由于 TCP 协议是基于连接的,具备数据收发确认效验机制,因此他比 UDP 协议通信可靠。
- 三次握手:
- - 第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client
- 进入SYN_SENT状态,等待Server确认。
- - 第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK
- 都置为1 ack=J+1,随机产生一个值seq=K, 并将该数据包发送给Client以确认连接请
- 求,Server进入SYN_RCVD状态。
- - 第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,
- ack=K+1,并将该数据包发送给Server,Server 检查ack是否为K+1,ACK是否为1,如
- 果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server
- 之间可以开始传输数据了。
- 四次挥手:
- - 第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1
- 状态。
- - 第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个
- FIN占用一个序号),Server进入CLOSE_WAIT状态。
- - 第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状
- 态。
- - 第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号
- 为收到序号+1,Server进入CLOSED状态,完成四次挥手
4、 请简述将一块 100G 新硬盘插入服务器, 创建EXT4的逻辑卷1G,并配置挂载到 /data/log/,使用一段时
间空间不足,扩容到2G
- 看最后
5, 如何配置linux系统的环境变量,如何配置Linux系统的指定用户的环境变量。
- 系统环境变量:/etc/profile /etc/bash.bashrc /etc/environment #配置系统变量影响所有人
- 用户环境变量:~/profile ~/.bashrc ~/.bash_profile #配置指定用户的环境变量
- 不会影响到其他用户
6、检测网络状态一般用哪些指令,请例举。并说明具体用途?(俩种以上)
- 连接测试命令ping
- 说明:ping命令是windows的自带命令,它基于ICMP协议。通过ping命令的返回信息,可以判断能否连接远
- 程主机,并且看到连接远程主机的延迟时间。
- 网络连接状态命令netstat
- 说明: netstat 是一-个TCP/IP监控命令,它可以显示本机的核心路由表、实际的网络连接、开启的端口列
- 表,以及统计IP、TCP、UDP、和ICMP协议相关的通信流量。
- 路由表管理命令route
- 说明:使用route命令可以显示和修改本地路由表。入侵远程主机后,可以使用route命令来修改该主机在内网
- 的数据包流向,以便侦听内网明文传输的信息,偷窃其他内网用户的网络密码。
7、写出在 CentOS7.6 操作系统上创建系统用户 apache 的命令,要求其用户 id 和组 id 为 799
- [root@localhost ~]# groupadd apache -g 799
- [root@localhost ~]#
- [root@localhost ~]# useradd -r apache -u 799 -g 799
- [root@localhost ~]#
- [root@localhost ~]# id apache
- uid=799(apache) gid=799(apache) groups=799(apache)
8、请简述一下硬链接和软连接的区别和各自的特点
- 1.本质:硬链接:是一个文件,软连接 :不是一个文件
- 2. 跨设备 硬链接:不支持,软连接:支持
- 3. inode : 硬链接:相同,软连接: 不同
- 4. 链接数 :硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数会减少,软连接:创建或删除,
- 连接数不会变化
- 5. 文件夹:硬链接:不支持,软连接:支持
- 6.相对路径: 硬链接,原始文件相对路径是相对当前工作目录的,软连接:原始文件的相对路径是相对与链
- 接文件的相对路径
- 7. 删除源文件:只是链接数减1,但是链接文件的访问不受影响,软链接:链接文件将无法访问
- 8. 文件类型,硬链接:和源文件相同,软连接:链接文件,和源文件无关
- 9.文件大小:硬链接:和源文件相同,软链接:源文件的路径的长度
9、请简述一下 IP 地址分类和各自的私网或特殊地址范围
- 参考答案:
- ipv4地址分为5类,分别是
- A: 0.0.0.0-127.255.255.255
- 其中 0.0.0.0 和 127.x.x.x 是本地回环地址
- 10.x.x.x 是私网地址
- B: 128.0.0.0-191.255.255.255
- 其中172.16.x.x---172.31.x.x 是私网地址
- C: 192.0.0.0-223.255.255.255
- 其中192.168.X.X 是私网地址
- D: 224.0.0.0-239.255.255.255
- 该类地址不分网络地址和主机地址,第一个字节以“1110”开始,它是一个专门保留的地址。
- 该类地址主要用于多点广播Multicast之中作为多播组IP地址
- E: 240.0.0.0-255.255.255.255,其中段255不可用
- 该类地址不分网络地址和主机地址,地址是以“1111”开始,他的第一字节的范围是240~255,为将来使
- 用保留
10、请使用文本处理命令打印出 /etc/init.d/functions 的所有函数名称
- cat /etc/init.d/functions | sed -nr 's/\{$//p'
- cat /etc/init.d/functions | grep "^[a-zA-Z_]\+() {" | cut -d "(" -f1
- cat /etc/init.d/functions | grep "()" | sed -nr 's/(.*)\(.*/\1/p'
- cat /etc/init.d/functions | grep "() {" | sed -nr "s/(.*)\(\) \{$/\1/p"
- cat /etc/rc.d/init.d/functions | egrep '^(_|[a-z])+ ?\(\)'
- cat /etc/init.d/functions | sed -nr 's#(.*)\(\) .*#\1#p'
- cat /etc/init.d/functions | grep "()"|awk '{print $1}'
- egrep "[_[:alpha:]]+\(\)" /etc/rc.d/init.d/functions
- cat /etc/rc.d/init.d/functions | egrep '^(_|[a-z])+ ?\(\)'
11、请分别简述几种常见的 raid 模式,并简述一下他们各自的特点
- RAID0: 是一种简单的、无数据校验的数据条带化技术,可将多个磁盘合并成一个使用,容量大,读写速度
- 快。
- RAID1: 称为镜像,它将数据完全一致地分别写到工作磁盘和镜像磁盘,它的磁盘空间利用率为 50%
- RAID5: 使用数据校验功能的,校验数据分布在阵列中的所有磁盘上,当有一块磁盘损坏时可以使用检验数
- 据恢复,恢复数据是磁盘比较慢,
- 日常使用频率较高的RAID模式,是 RAID0 和 RAID1 的折中方案
- RAID01:先做镜像,然后内部再做条带,比RAID10有跟好的容错性能,磁盘空间利用率50%
- RAID10:先做条带,然后内部再做镜像,磁盘空间利用率50%。比RAID10 风险高,当有一组RAID故障时,
- 数据丢失不可用。
12 , 创建网桥br0,配置IP为10.0.0.123/24,并将eth0,eth1加入网桥,持久保存上面配置
- nmcli con add type bridge con-name br0 ifname br0
- nmcli connection modify br0 ipv4.addresses 10.0.0.123/24 ipv4.method manual
- nmcli con up br0
- nmcli con add type bridge-slave con-name br0-port0 ifname eth0 master br0
- nmcli con add type bridge-slave con-name br0-port1 ifname eth1 master br0
- nmcli con up br0-port0
- nmcli con up br0-port1
13 抓取从源地址为10.0.0.111主机访问目标主机10.0.0.222的80/tcp端口的流量?
- tcpdump -i eth0 -nn src host 10.0.0.111 and dst host 10.0.0.222 and tcp port 80
14 主机202.192.33.160/28的子网掩码是什么,所在网段最多有多个主机?
- 子网掩码:255.255.255.240
- 所在网段最多有32-28=4,2^4-2=14
二。扩展题
1、写一个脚本,实现批量添加20个用户,用户名为:user1-20,密码为user后面跟着几个随机字符或数
字。
- #!/bin/bash
- for i in `seq 1 20`;do
- useradd user$i
- echo "user`echo $RANDOM |md5sum|head -c 6`"| passwd --stdin user$i &>
- /dev/null
- done
2、编写一键编译安装httpd的脚本
- #!/bin/bash
- #解决依赖
- yum -y install wget gcc gcc+ pcre-devel apr-devel apr-util-devel
- yum -y groupinstall "Development Tools"
- #下载 apache 安装包
- wget https://mirror.bit.edu.cn/apache/httpd/httpd-2.4.46.tar.gz
- #解压安装包
- tar -xvf httpd-2.4.46.tar.gz && cd httpd-2.4.46
- #生成 makefiel
- ./configure --prefix=/app/httpd
- #开始编译
- make && make install
- #启动 apache
- /app/httpd/bin/apachectl
- #通过过滤端口 80 已经打开
- [09:57:18 root@a7 ~]#lsof -i:80
- COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
- httpd 32963 root 4u IPv6 43432 0t0 TCP *:http (LISTEN)
- httpd 33015 daemon 4u IPv6 43432 0t0 TCP *:http (LISTEN)
3,数字答案为 1 到 100 的随机数,执行脚本后等待用户输入数字,若猜中则结束游戏,未猜中则返回答
案和所输入数字的大小关系,最多可以猜5次,5次均未猜中则结束游戏
- [root@localhost ~]# cat guess.sh
- #!/bin/bash
- randomNum=`expr $RANDOM % 100`
- echo $randomNum
- for((i=1;i<=5;i++)){
- read -p "please input a number: " myNum
- if [ $myNum -ne $randomNum ];then
- if [ $myNum -gt $randomNum ];then
- echo "please input a smaller number"
- else
- echo "please input a bigger number"
- fi
- else
- echo "you win the game , randomNumber is $randomNum"
- exit
- fi
- }
4,如何实现主机之间跨路由跨网段通讯。实验:主机A <<----- router1-----router2------>>主机B
主机A:
172.18.0.111/16
GATEWAY:172.18.0.200
router1:
eth0:172.18.0.200/16
eth1:192.168.6.200/24
router2:
eth0:192.168.38.200/24
eth1:192.168.6.201/24
主机B:192.168.38.222/24
GATEWAY:192.168.38.100
- 主机A:设置为桥接
- 路由1:设置eth0为桥接,eth1设置为仅主机
- 路由2:设置eth0为桥接,eth1为NAT
- 主机B:设置为NAT
- #1、 更改所有机器ip
- 主机A:更改eth0 ip为172.18.0.111/16 gateway:172.18.0.200
- 重启network服务
- route -n 查看路由信息
- router1:修改eth0 ip为172.18.0.200/16
- eth1 ip为192.168.6.200/24
- 重启network服务
- router2:修改eth0 ip为192.168.38.200/24
- eth1 ip为192.168.6.201/24
- 重启network服务
- 主机B:更改eth0 ip为192.168.38.222/24 gateway:192.168.38.100
- 重启network服务
- route -n 查看路由信息
- 相邻机器之间可以ping通表示配置没有问题
- #2 配置路由
- router1:添加网络路由 route add -net 192.168.38.0/24 gw 192.168.6.201 dev eth1
- 或 添加默认路由 route add default gw 192.168.6.201
- route -n 查看路由信息
- router2:添加网络路由 route add -net 172.18.0.0/16 gw 192.168.6.200 dev eth1
- route -n 查看路由信息
- #3 linux系统默认不会做转发报文,因此需要添加路由转发选项
- cat /proc/sys/net/ipv4/ip_forward
- 默认为0表示禁用
- router1:
- echo > 1 /proc/sys/net/ipv4/ip_forward
- router2:
- echo > 1 /proc/sys/net/ipv4/ip_forward
- 主机B: ping 172.18.0.111 连通即可
5. 简述OSI协议和TCP/IP协议的对应分层功能及相关协议
第四题答案
1.添加硬盘,模拟100G
2.查看是否成功添加磁盘
- [root@master01 ~]# lsblk
- NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
- sda 8:0 0 200G 0 disk
- ├─sda1 8:1 0 1G 0 part /boot
- ├─sda2 8:2 0 100G 0 part /
- ├─sda3 8:3 0 2G 0 part
- ├─sda4 8:4 0 1K 0 part
- └─sda5 8:5 0 50G 0 part /data
- sdb 8:16 0 100G 0 disk #新添加的100G磁盘
- sr0 11:0 1 4.3G 0 rom
3.实现逻辑卷
3.1 创建物理卷
- 1.#先安装相关工具
- [root@master01 ~]# yum install -y lvm2
- 2.#创建物理卷
- [root@master01 ~]# pvcreate /dev/sdb
- Physical volume "/dev/sdb" successfully created.
- 3.#查看物理卷简要信息
- [root@master01 ~]# pvs
- PV VG Fmt Attr PSize PFree
- /dev/sdb lvm2 --- 100.00g 100.00g #可以看到物理卷为100G
- [root@master01 ~]# pvdisplay /dev/sdb #查看物理卷详细信息
- "/dev/sdb" is a new physical volume of "100.00 GiB"
- --- NEW Physical volume ---
- PV Name /dev/sdb
- VG Name
- PV Size 100.00 GiB
- Allocatable NO
- PE Size 0
- Total PE 0
- Free PE 0
- Allocated PE 0
- PV UUID Qa7eTs-fam8-8u2E-c8DG-oGUJ-4xPX-afpBbA
3.2 创建卷组
- [root@master01 ~]# vgcreate -s 16M vg0 /dev/sdb
- Volume group "vg0" successfully created
- #-s 16M,指定pe大小为16M
- [root@master01 ~]# vgs
- VG #PV #LV #SN Attr VSize VFree
- vg0 1 0 0 wz--n- 99.98g 99.98g
3.3 创建逻辑卷
- [root@master01 ~]# lvcreate -n mydata -L 1G vg0 #创建1G的逻辑卷
- Logical volume "mydata" created.
- [root@master01 ~]# lvs
- LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync
- Convert
- mydata vg0 -wi-a----- 1.00g
3.4 创建文件系统
- [root@master01 ~]# mkfs.ext4 /dev/vg0/mydata
- mke2fs 1.42.9 (28-Dec-2013)
- Filesystem label=
- OS type: Linux
- Block size=4096 (log=2)
- Fragment size=4096 (log=2)
- Stride=0 blocks, Stripe width=0 blocks
- 65536 inodes, 262144 blocks
- 13107 blocks (5.00%) reserved for the super user
- First data block=0
- Maximum filesystem blocks=268435456
- 8 block groups
- 32768 blocks per group, 32768 fragments per group
- 8192 inodes per group
- Superblock backups stored on blocks:
- 32768, 98304, 163840, 229376
- Allocating group tables: done
- Writing inode tables: done
- Creating journal (8192 blocks): done
- Writing superblocks and filesystem accounting information: done
3.5 对逻辑卷进行挂载
- #先创建挂载点
- [root@master01 ~]# mkdir /data/log
- [root@master01 ~]# mount /dev/vg0/mydata /data/log/
- [root@master01 ~]# df -h
- Filesystem Size Used Avail Use% Mounted on
- /dev/sda2 100G 3.3G 97G 4% /
- devtmpfs 900M 0 900M 0% /dev
- tmpfs 910M 0 910M 0% /dev/shm
- tmpfs 910M 12M 899M 2% /run
- tmpfs 910M 0 910M 0% /sys/fs/cgroup
- /dev/sda5 50G 33M 50G 1% /data
- /dev/sda1 1014M 138M 877M 14% /boot
- tmpfs 182M 0 182M 0% /run/user/0
- /dev/mapper/vg0-mydata 976M 2.6M 907M 1% /data/log #已经挂载
4.实现逻辑卷扩容
因为使用一段时间后,导致空间不足,所以要进行扩容,扩容到2G
- 1.#空间扩展
- [root@master01 ~]# lvextend -L +1G /dev/vg0/mydata
- Size of logical volume vg0/mydata changed from 1.00 GiB (64 extents) to 2.00
- GiB (128 extents).
- Logical volume vg0/mydata successfully resized.
- [root@master01 ~]# lvs
- LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync
- Convert
- mydata vg0 -wi-ao---- 2.00g
- 2.#文件系统的扩展
- [root@master01 ~]# resize2fs /dev/vg0/mydata
- resize2fs 1.42.9 (28-Dec-2013)
- Filesystem at /dev/vg0/mydata is mounted on /data/log; on-line resizing required
- old_desc_blocks = 1, new_desc_blocks = 1
- The filesystem on /dev/vg0/mydata is now 524288 blocks long.
检测是否扩展成功
- [root@master01 ~]# df -h
- Filesystem Size Used Avail Use% Mounted on
- /dev/sda2 100G 3.3G 97G 4% /
- devtmpfs 900M 0 900M 0% /dev
- tmpfs 910M 0 910M 0% /dev/shm
- tmpfs 910M 12M 899M 2% /run
- tmpfs 910M 0 910M 0% /sys/fs/cgroup
- /dev/sda5 50G 33M 50G 1% /data
- /dev/sda1 1014M 138M 877M 14% /boot
- tmpfs 182M 0 182M 0% /run/user/0
- /dev/mapper/vg0-mydata 2.0G 3.0M 1.9G 1% /data/log #可以看到已经扩容到2G
M43 第一阶段考试的更多相关文章
- JAVA EE 第一阶段考试
在第一阶段中我们学习了Spring Struts2 Hibernate.虽然在外面的公司中,公司项目的框架中都不在使用Struts2了.他好像出现了不可修复的bug.但是在学校,依然还是要学习这个.在 ...
- 第一阶段考试:实战Linux系统日常管理
1. [项目名称] 实战Linux系统日常管理 [项目说明] 1.安装部署rhel系统,组建RAID磁盘阵列. 2.安装nginx 通过脚本编写 nginx服务服务启动脚本 [项目考核技能点] 1.安 ...
- 自我总结(六)---(学习j2ee+j2ee第一阶段项目)
自我完善的过程就是在不断的自我总结不断的改进. 学习了Struts2 Spring Hibernate. 十天前结束了这个课程.也考试了.这次考试老师说机试考的还不错.其实就是一个简单的用户登录,进行 ...
- 计算机二级Python(第一阶段)
介绍 本篇文章主要针对于计算机二级考试的崽崽,当然想了解Python和学习Python的崽崽也是可以看本篇文章的:毕竟,手机和电脑都可以运行Python:本篇我文章虽然是笔记,但是也纯靠手打,希望 ...
- PHP四个阶段目标以及第一阶段学习内容
PHP课程体系主要分为四个阶段,第一阶段讲的是网页HTML和数据库MySQL,第一阶段要学会网页制作的基础知识,熟用各种基本标签,对数据库进行操作,各项考核都能够达标,拿出出众的项目展示. 在第二个阶 ...
- Bete冲刺第一阶段
Bete冲刺第一阶段 今日工作: github团队协作流程 web:调整dao层设计,增加新的dao组件 客户端:之前遗留的界面跳转的BUG 目前所遇问题: 第一,COCOAPODS的安装上还是有点问 ...
- java - 第一阶段总结
java - 第一阶段总结 递归 递归:能不用就不用,因为效率极低 package over; //递归 public class Fi { public static void main(Strin ...
- Java第一阶段总结
学习java已经一个多月的时间了,第一阶段总算完成了. 这中间遇到很多问题,通过问同学问学长,收获了很多,但也知道自己和其他同学相差很远.他们java第一阶段只用了不到一个月的时间,而我拖了很长时间, ...
- [原创].NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(后篇)
原文:[原创].NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(后篇) .NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(后篇) 前言:接着上篇来. 系列文章链接: [ ...
随机推荐
- web移动端css reset
通用版css reset,pc端使用只需要修改html{font-size: 10px;}为html{font-size: 12px;} @charset "utf-8"; htm ...
- 深入解析volatile关键字
前言 很高兴遇见你~ 欢迎阅读我的文章. volatile关键字在Java多线程编程编程中起的作用是很大的,合理使用可以减少很多的线程安全问题.但其实可以发现使用这个关键字的开发者其实很少,包括我自己 ...
- ST 表练习笔记
P2048 [NOI2010]超级钢琴 首先按照 前缀和最大值 建立 \(ST\) 表 对于每一个 \(i\) 维护一个以他为起始点的最大的 "超级和弦" (\(ST\) 表 \( ...
- MySQL5.7 主主复制配置
MySQL 5.7 主主复制配置 一.简介: MySQL主主复制其实就是两个MySQL主从复制组合到一起,接着我的上一篇博客<centos 7 配置 mysql 5.7 主从复制>配置即可 ...
- rman恢复实践
1) Loss of system DATAFILE 2) Loss of non-system DATAFILE 3) Loss of a DATAFILE without Backup 4) Lo ...
- 【C#】DockPanelSuite 中 DockState.Document 状态下子窗体控件不显示的解决方案
DockPanelSuite 是 Winform 中优秀的布局控件,但是这次使用过程中却出了个问题. 我遇到的问题是这样的,主窗体是通过 ShowDialog 显示的,子窗体的停靠状态为 DockSt ...
- Greenplum 性能优化之路 --(一)分区表
一.什么是分区表 分区表就是将一个大表在物理上分割成若干小表,并且整个过程对用户是透明的,也就是用户的所有操作仍然是作用在大表上,不需要关心数据实际上落在哪张小表里面.Greenplum 中分区表的原 ...
- 事件修饰符 阻止冒泡 .stop 阻止默认事件 .prevent
stop修饰符 阻止冒泡行为 可以在函数中利用$event传参通过stopPropagation()阻止冒泡 通过直接在元素中的指令中添加 .stop prevent修饰符 阻止默认行为 可以在函数中 ...
- [日常摸鱼]bzoj2038[2009国家集训队]小Z的袜子-莫队算法
今天来学了下莫队-这题应该就是这个算法的出处了 一篇别人的blog:https://www.cnblogs.com/Paul-Guderian/p/6933799.html 题意:一个序列,$m$次询 ...
- aaencode:用颜文字来加密吧
今天逛大佬博客发现了一个有意思的东西 ゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); (゚Д゚) =(゚Θ゚ ...