1.osi网络参考模型:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
tcp/ip五层模型:物理层(网卡),数据链路层(交换机).网络层(路由器),传输层(防火墙),应用层(计算机)
2.vlan局域网,分割广播域,作用:广播控制,增加安全性,提高带宽利用,降低延迟
路由:将数据包从一个网络发送到另一个网络
mac地址通常用16进制标识,长度是6字节,前24位是厂商标识,后24位是序列号
tcp是传输控制协议,可靠面向连接的协议,传输效率低,udp是用户数据报协议,不可靠无连接的服务,传输效率高
三次握手:A发送syn,请求建立连接,B发送syn和ack请求建立连接和回应信息,A发送ack回应信息建立连接
四次断开:A发送fin,请求断开连接,B发送ack回应信息,发送fin请求断开连接,A发送ack回应信息
3.DOS:拒绝服务攻击,DOS会导致目标系统无法处理正常用户的请求,不需要侵入受攻击的系统,如果目标系统没有漏洞,远程攻击也有可能成功
4.网站突然不能访问,排查思路:先检查网络,再看服务器状态,检查架构状态.
5.nat:作用是进行网络地址转换,优点有节约公网ip,提高安全,处理地址重叠,使用nat的业务有web服务器,App服务器,PC主机.
6.查看进程和服务状态的命令:netstat ss top ps
7.简述创建crontab计划任务的流程:利用crontab -e -u 用户名 进入计划任务编辑模式,分时日月周 执行的命令
8.如何添加一个没有登录权限的新账户:useradd -s /sbin/nologin 账户名称
9.常见的软件包管理方式:使用rpm或者yum方式管理软件包
10.root用户创建的目录,默认权限为什么755:默认创建文件为644,默认创建目录为755,原因权限的掩码umask值为0022,umask是设置权限补码
11.su 用户 不切换环境,su - 切换环境
12.软连接和硬链接的区别:软链接的源文件或目录如果被删除,则链接文件将失效,可以跨分区文件系统创建软链接.硬链接的源文件或目录如果被删除,则硬链接依然可以正常使用,硬链接不可以跨分区或者文件系统
13.怎么查看一台linux系统已经运行了多长时间:使用top命令可以查看系统启动的时间和cpu的负载情况.
11:38:47 up 20 days, 2:56, 5 users, load average: 0.15, 0.17, 0.20
上面的信息说明当前时间是11:38:47 已经运行了20天两个小时56分钟,当前有五个人登录到系统中,cpu的一分钟,5分钟,15分钟的平均负载是0.15 0.17 0.20
14.raid0:条带模式,提高读写效率;raid1:镜像模式,实现磁盘设备的冗余备份;raid5:均衡模式.既提高效率也有备份;raid10 镜像+条带模式,备份与效率都比较完整
15.dns正向和反向解析的工作原理和应用场景:正向解析,将主机名解析为ip地址,主要应用在用户访问网站的时候.反向解析,将ip地址解析为主机名,主要应用在邮件服务器进行邮件域检测.
16.简述源码编译安装软件包的流程:安装依赖包,使用tar解包,使用./configure 完成系统检测与配置,make编译源代码,make install 安装软件包
17.将/usr/local/test目录下大于100k的文件复制到/tmp目录:find /usr/local/test -size +100k -type f -exec cp {} /tmp/ \;
18.如果不小心删除了一个系统命令,在不影响其他程序运行的前提下,如何进行恢复?:利用 yum provides 找出产生该程序文件的软件包,利用yum reinstall 重新安装即可
19.show engines列出可用的存储引擎类型
你知道数据库的引擎有那些:myisam,innodb,事物的四大特性:原子性(整个操作是一个整体,不可分割),一致性(事物操作的前后,表中的记录没有变化),隔离性(事务操作是相互隔离不受影响的),持久性(数据一旦提交,不可改变,永久改变表数据)
利用acl策略设置用户或组,设置无任何权限.即就是把用户或组列入访问黑名单
20.pxe网络装机:dhcp服务器:为客户提供ip地址等参数,并告知下一个服务器地址,启动文件名
tftp:为客户机提供启动文件.启动菜单配置,用来安装系统的内核及初始驱动程序
软件仓库:通过http或ftp方式为客户机提供安装树资源
实现kickstart无人值守安装:(1)提前准备一份安装过程中所涉及问题的答案清单(即应答文件),一般利用system-config-kickstart图形生成(2)将此文件部署到客户机可下载的位置(3)通过菜单文件进行指定客户端下载
21.shell:shell100例
22.hadoop是一种分析和处理海量数据的软件平台,搭建hdfs(namenode的master节点,处理请求,Secondary Namenode辅助namenode,datanode数据存储节点,存储实际的数据,汇报存储信息给namenode,client切分文件,访问hdfs,与namenode交互,获取文件位置信息,与datanode交互,读取和写入数据)
mapreduce(jobtracker管理节点,管理所有的任务,将任务分派给tasktracker,tasktracker:slave节点,运行map task 和reduce task 与job交互,汇报任务状态)
yarn是一个通用的资源管理系统(resourcemanager:处理客户端请求,启动监控applicationmaster,监控nodemanager,nodemanager单个节点上的资源管理,处理来自resourcemanager的命令,处理来自applicationmaster的命令,applicationmaster数据切分,为应用程序申请资源,并分配给内部人物,任务监控与容错)
22.mysql读写分离:部署主从数据库,由maxscale软件实现,通过修改配置文件定义主从数据库,定义读写分离的数据库节点和管理服务端,定义监控用户和数据库.给涉及的用户授权
23.监控软件:zabbix(主动监控和被动监控),监控服务的运行状态,cpu的占用率,吞吐量,负载.
24 Iaas(基础设施即服务)云:公有云,私有云和混合云
pass云(平台即服务)
Saas(软件即服务)
openstack:horizon:用于管理openstack各种服务的,基于web的管理接口,通过图形界面实现创建用户,管理网络,启动实例等操作
keystone 为其他服务提供认证和授权的集中身份管理服务,也提供了集中的目录服务
neutron:一种软件定义网络服务,用于创建网络,子网,路由器,管理浮动ip地址,可以实现虚拟交换机,虚拟路由器,可用于在项目中创建vpn
cinder:为虚拟机管理存储卷的服务,为运行在nova中的实例提供永久的块存储,可以通过快照进行数据备份,经常应用在实例存储环境中
glance:扮演虚拟机镜像注册的角色,允许用户为直接存储拷贝服务器镜像,这些镜像可以用于新建虚拟机的模板
nova:在节点上用于管理虚拟机的服务,是一个分布式的服务,能够与keystone交互实现认证,与glance交互实现镜像管理,nova被设计成在标准硬件上能够进行水平扩展,启动实例时,如果有则需要下载镜像
安装过程:1环境准备,静态ip主机名能够互相ping通,ntp时间同步,配置yum源2,安装依赖包qemu-kvm,libvirt-daemon,libvirt-daemon-driver-qemu,libvirt-client,python-setuptools,yum -y install openstack-packstack,使用packstack --gen-answer-file=answer.ini创建通用应答文件,修改应答文件,packstack --answer-file=answer.ini,修改/etc/httpd/conf.d/15-horizon_vhost.conf加一行'WSGIApplicationGroup % {GLOBAL}'图形配置后面
25.说下./和sh和.和source执行test.sh的区别:第一种方式,是在当前的shell执行,需要x权限,有2进程test.sh和sleep.第二种方式,是新建一个shell执行,不需要x权限,有2进程bash和sleep.第三种方式,是在当前的shell执行,不需要x权限,有1进程sleep.第四种方式和第三种方式一致.
26.介绍一下lvs,nginx,haproxy。如何和keepalived互相应用
选择哪个负载均衡,要看四高:高可用,高扩展,高并发,高性能
Lvs(一般不用,扩展不方便)的是通过vrrp协议进行数据包转发的,提供的是4层的负载均衡。特点是效率高,网卡性能要好。模式:dr(200台常用)/nat(200台)/tun
haproxy可以提供4层或7层的负载均衡,能做到7层的好处是可以根据服务所处的状态等进行负载和数据服务。生产环境最多haproxy+20台左右haproxy
nginx提供在7层(可打补丁在4层)负载均衡,生产环境最多nginx+20台左右nginx例如:动静分离+负载均衡
以上两者只是实现了负载均衡,但是他们本身是明显的单点故障,因此需要使用双机软件做热备,来保证高可用性。keepalived可以通过检测vrrp数据包来切换,因此更适合与lvs搭配。而heartbeat更适于和haproxy搭配。这样就出现了这两个应用比较多也比较经典的负载均衡的高可用性方案了。
【LVS】
lvs使用Linux内核集群实现的一个高性能,高可用的负载均衡服务器,它具有很好的可伸缩性,可靠性以及可管理性
优势:
抗负载均衡能力较强,工作在网络层的四层之上(传输层),没有流量产生,这个特点决定了在负载均衡中的性能最强,对内存和cpu资源消耗较低
配置简单,减轻了出错几率
性能稳定,自身有完整的双机热备方案(LVS+keepalived)
无流量,lvs只负责分发请求,流量并不会从它本身出去,保证了均衡器的I/O性能稳定
应用广泛性,因为是工作在四层传输层,几乎可以对所有应用做负载均衡,包括http,数据库等等
劣势:
不支持正则表达式,不能做动静分离,这个相对于nginx/haproxy+keepalived的优势所在
如果网站应用比较庞大的话,lvs/DR+keepalived实施起来就比较复杂了,特别是后面的win机器,现对而言,Nginx/haproxy+keepalived简单多了
【Haproxy】
优势:
支持8种负载均衡算法,同时也支持session会话保持
可靠性和稳定性可以硬件级的F5相媲美
最高可以同时处理40000~50000个并发连接,单位时间内处理最大的请求出可达20000个
Haproxy是基于第三方应用实现的负载均衡,工作四层和七层的负载均衡软件,可以实现tcp和http应用的负载均衡解决方案
在状态检测方面功能强大,可支持端口,url以及脚本等多种状态检测方式
劣势:
haproxy安装简单,但是配置复杂
整体处理能力要低于四层负载均衡的LVS,和lvs相比,lvs拥有接近硬件设备的网络吞吐量和连接负载能力
【Nginx】
优势:
工作在OSI七层之上,对网络稳定性的依赖很小,理论上只要能够ping通就能实现负载均衡
安装配置简单 ,测试方便
可以承担高负载压力且稳定,在硬件不差的情况下可以支撑几百万次的并发,但是处理流量受限于I/O读写配置,所以负载能力较差
nginx可以通过端口检测到后端服务器的故障,比如根据服务器处理网页返回的状态码等等
Nginx作为web服务器,处理静态文件也毫无对手
劣势:
Nginx仅能支持http,https和Email协议,使用范围小
对后端服务器的健康检测,只能支持端口,不支持url,同时呢,不支持session会话的直接保持,但能通过ip_hash来解决(将同一客户端的请求一直发往同一台机器,非他不可);
Nginx和haproxy原理:cip---vip---dip---rip 可以跨路由 跳一格
Lvs原理:cip---vip---rip 跳一格
大公司再用:ospf+Dpdk+lvs-fullnat=dpvs
27.简要说一下是怎么用sed和awk,或者就是你都用这两个工具干过什么
sed -n屏蔽默认输出 -i 直接修改文件内容 -r 启用扩展正则 p打印行输出 d删除行 s字符串替换
awk -F(指定分隔符,默认空格或者tab位) $n(指定分隔的第n个字段) $0(当前读入的整行文本内容) NF(记录当前处理行的字段个数) NR(记录当前已读入行的数量)
写脚本
28.你对redis都有哪些了解
由于数据库持久化数据主要是面向磁盘,而磁盘的读/写比较慢,在一般的管理系统上,由于不存在高并发,因此没有需要瞬间需要读/写大量书写数据的要求,这时候数据库的读写是没有问题的。但是在互联网中,往往存在大量数据的需求,比如抢票,发红包等等。容易造成数据库系统瘫痪,导致服务器宕机。
优点:
(1) 速度快,因为数据存在内存中
(2) 支持丰富数据类型,支持string,list,set,sorted set,hash
(3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
(4) 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除
应用:缓存/高速读写场合
29.nginx怎么来做负载均衡服务器和反向代理服务器
反向代理:是把一些静态资源存储在服务器上,当用户有请求的时候,就直接返回反向代理服务器上的资源给用户,而如果反向代理服务器上没有的资源,就转发给后面的负载均衡服务器,负载均衡服务器再将请求分发给后端的web服务器。用户不知道是哪个服务器提供的资源
区别就是:
* 反向代理服务器是需要存储资源的,让用户更快速的接收到资源
* 负载均衡是为了保证后端web服务器的高可用,高并发,是不需要要存储资源,只需要转发用户的请求。
1)nginx的反向代理:proxy_pass
2)nginx的负载均衡:upstream
30.mysql是怎么恢复和备份数据的
完全备份/恢复
mysqldump -uroot -p123qqq...A db2 > /db2.sql
mysql -uroot -p123qqq...A -e 'create database db3;' && mysql -uroot -p123qqq...A db3 < /db2.sql
增量备份和恢复
innobackupex --user root --password 123456 --incremental /new1dir --incremental-basedir=/fullbak --no-timestamp
31.如何查看Linux系统中哪个进程占用内存最多,哪个进程占用CPU最多?
top命令,输入P按CPU排序,输入M按内存排序
32.你管过多少台服务器?(了解外包类型一般1人管多少服务器,自主产品的1人管多少)
33.zabbix什么语言写的
C+php
34.都用zabbix监控过什么
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视。
35.MHA集群怎么搭建的,中间遇到什么问题,你是怎么解决的
是一套优秀的实现mysql高可用的解决方案
MHA组成:MHA Manager+MHA Node
36.云主机ssh连不上怎么办?
1、sshd服务没启动。
2、防火墙阻隔了
3、检查当前服务器安全组
4、添加端口
交换机的工作原理,二层交换机和三层交换机的区别:交换机根据收到数据帧中的源mac地址建立该地址同交换机端口的映射,并将其写入mac地址表中,交换机讲数据帧中的目的mac地址同已建立的mac地址表进行比较,以决定由哪个端口进行转发,如数据帧中的目的mac地址不在mac地址表中,则向所有端口转发,这一过程叫做泛洪.广播帧和组播帧向所有的端口转发.二层交换机是数据链路层的设备,不具备路由功能,三层交换机具有路由功能可以看做是网络层的设备.
软通动力:kvm技术是一个基于linux内核的虚拟化技术,需要cpu的支持,采用硬件辅助虚拟化技术.
openstack3.2.1:openstack是一套iaas解决方案,是一个开源的云计算管理平台,用做管理虚拟机.
horizon(管理,控制openstack服务的web控制面板,也称之为dashboard仪表盘)
keystone(为其他服务提供认证和授权的集中身份管理服务)
neutron(一种软件定义网络服务,用于创建网络,子网,路由器,管理浮动ip地址,可以实现虚拟交换机,虚拟路由器)
cinder(为虚拟机管理存储卷的服务,为运行在nova的实例提供永久的块存储
glance(扮演虚拟机镜像注册的角色,允许用户为直接存储拷贝服务器镜像)
nova(在节点上用于管理虚拟机的服务,是一个分布式的服务,能够与keystone交互实现认证,与glance交互实现镜像管理
7个核心组件:Compute(计算), Object Storage(对象存储),Identity(身份认证),Dashboard(仪表盘), Block Storage(块存储), Network(网络) 和 Image Service(镜像服务)
优点:实施简单、可大规模扩展组件
缺点:新版本与旧版本的兼容,厂商之间的冲突
用法:部署Openstack 、 利用Openstack的web页面操作(用户、配额管理 、 云主机类型管理 、 镜像管理 、 网络管理 、 安全和实例管理 、 计算节点扩容)
docker容器技术你都掌握多少,都在什么地方应用?
docker三大概念:/容器/镜像/仓库
容器原理:是应用程序封装和交付的核心技术,由cgroups-资源管理/namespace-进程隔离/selinux安全组成
容器本质:隔离空间,外面可以看见里面/里面看不见外面
容器六大命令空间:uts net pid user mount ipc
容器优点:简洁高效/使用共享公共库和程序 容器缺点:隔离性弱(比虚拟化)/安全性弱/监控和排错不方便
容器:不需要启动系统
1.k8s
是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能
# 什么时候用
- 快速部署应用
- 快速扩展应用
- 无缝对接新的应用功能
- 节省资源,优化硬件资源的使用
# 在那用
- **可移植**: 支持公有云,私有云,混合云,多重云(multi-cloud)
- **可扩展**: 模块化, 插件化, 可挂载, 可组合
- **自动化**: 自动部署,自动重启,自动复制,自动伸缩/扩展
# 怎么用
- **Build, Ship and Run (创建,发送和运行)**
- **Build once,Run anywhere(搭建一次,到处能用)**
网络:交换机工作在2层,使用mac来转发数据帧
路由器工作在3层,使用ip地址来转发数据帧
路由器根据ip寻找下一个设备,可以处理tcp/ip协议,而交换机是根据mac地址寻找的
交换机是分配网络数据,路由器可以给网络分配ip地址
云主机ssh连不上怎么办:端口有没有启动,安全组的规则设置
连在一个交换机上的两台主机网不通了,会有几种情况:检查物理设备,是否在同一网段,是否在同一个vlan,是否关闭防火墙,ip地址是否是静态ip
root用户怎么拒绝ssh访问:/etc/ssh/sshd.conf