Linux运维工程师面试题总结

Linux开机启动流程说一下

Bios->MBR->Grub->Kernel->Init->Runlevel
老生常谈了,简单来说就是上面6个步骤。
通过Bios自检CPU和内存等硬件设备看看有没有故障,再通过MBR加载主引导记录,然后通过Grub识别文件系统,加载config里面相应的kernel。init里面/etc/inittab定义了系统的各种信息,设定各种系统参数、系统时钟、装载硬盘、加载交换分区等等操作,最后是读取/etc/rc.local里面的开机自启动服务。最后加载相应的运行级别。

相关文章:
Linux系统启动过程

统计一个文件有多少行

1.cat firename | wc -l
wc -l是标准的统计有多少行的命令
2.grep -c '' firename
通过grep -c参数查找有多少行开头输出结果
3.awk 'END{print NR}' firename
awk的BEGIN和END表示匹配开始之前匹配结束之后执行的动作
4.cat -n firename | tail -n 1 |awk '{print $1}'
这个方法有点复杂和蠢,先通过cat -n取出所有行,再通过tail -n 1 输出最后一行,然后在通过awk 输出行号
5.sed -n '$=' firename
显示文件的行数  -n表示只打印匹配的结果

Linux配置IP和DNS分别是什么文件?在哪个位置

配置IP:/etc/sysconfig/network-scripts/ifcfg-eth0
配置DNS:/etc/resolv.conf
配置主机名:/etc/hostname
配置hosts:/etc/hosts

Linux如何查看端口占用?

netstat -anp | grep port

延伸问题:anp各个参数代表什么含义知道吗?

-a或--all:显示所有连线中的Socket; 
-A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址; 
-c或--continuous:持续列出网络状态; 
-C或--cache:显示路由器配置的快取信息; 
-e或--extend:显示网络其他相关信息; 
-F或--fib:显示FIB; 
-g或--groups:显示多重广播功能群组组员名单; 
-h或--help:在线帮助; 
-i或--interfaces:显示网络界面信息表单; 
-l或--listening:显示监控中的服务器的Socket; 
-M或--masquerade:显示伪装的网络连线; 
-n或--numeric:直接使用ip地址,而不通过域名服务器; 
-N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称; 
-o或--timers:显示计时器; 
-p或--programs:显示正在使用Socket的程序识别码和程序名称; 
-r或--route:显示Routing Table; 
-s或--statistice:显示网络工作信息统计表; 
-t或--tcp:显示TCP传输协议的连线状况; 
-u或--udp:显示UDP传输协议的连线状况; 
-v或--verbose:显示指令执行过程; 
-V或--version:显示版本信息; 
-w或--raw:显示RAW传输协议的连线状况; 
-x或--unix:此参数的效果和指定"-A unix"参数相同; 
--ip或--inet:此参数的效果和指定"-A inet"参数相同。

Linux如何查看进程内存和各项参数?怎么杀死进程?

查看进程:ps -aux | grep process_name或者pidof process_name
杀死进程:kill process_pid

反向代理与正向代理的区别?

向代理与反向代理【总结】

Nginx反向代理模块有哪些算法?他们的适用场景分别是什么?

upstream模块调度算法
调度算法一份分为两类:
第一类 静态调度算法
分配的时候,不需要考虑后端节点服务器的情况(rr, wrr, ip_hash调度算法)
第二类 动态调度算法
根据自身的情况调度,根据后端节点状态是否响应很快进行调度(least_conn,fair等)

静态调度算法
RR轮询(默认调度算法)
按照客户端请求顺序把客户端的请求逐一分配到不同后端节点服务器
WRR权重轮序
在RR轮询算法的基础上加上权重,权重值越大,别转发的请求越多,可以根据服务器状态进行指定权重值大小
ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题,用户就不会发生登录状态失效的问题。
(在upstream里配置,如果是ip_hash,不能有weight和bakcup)

Linux中变量KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲,@,$0,$1, 2 , 2, *,$ , , ?的含义

#! 在Unix中,凡是被#!注释的,统统是加载器(解释器)的路径
$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

Zabbix 主动模式和被动模式的区别

具体:
主动、被动模式都是相对于proxy来说的。proxy主动发送数据就是主动模式;proxy等待server的请求,再发送数据就是被动模式。因为主动模式可以有效减轻zabbix server压力,需要监控的东西很多时一定要把监控模式更改为主动监控

被动模式工作流程:
被动模式一定要记得设置Server = ServerIP
被动模式工作流程:
Server 打开一个TCP连接
Server发送一个key 为agent.ping
Agent接受这个请求,然后响应< HEADER >< DATALEN >
Server对接受到的数据进行处理
TCP连接关闭

主动模式工作流程:
主动模式一定要记得设置ServerActive=ServerIP
Agent向Server建立一个TCP连接
Agent请求需要检测的数据列表
Server响应Agent,发送一个Items列表
Agent允许响应
TCP连接完成本次会话关闭
Agent开始周期性地收集数据

如何在生产环境中删除zabbix数据库中的历史数据?

使用脚本定期删除数据库中30天之前的文件,一般非核心、不重要的数据保留30天即可。
**100台以下的agent端运行半年的数据量大概是70个G。
**
MySQL定期删除zabbix history数据

DNS原理和工作流程

DNS原理及其解析过程

Ansible

Ansible官方playbook文档

讲讲MySQL主从配置需要注意哪些细节?MySQL主主是同步还是异步?

1.MySQL主从同步配置容易出现的问题以及解决方法
2.MySQL主主架构是异步的,使用插件semisync_master.so可以做到半同步。
mysql主从和mysql主主和半同步复制

MariaDB和MySQL有什么区别?

MariaDB是MySQL创始人为了防止MySQL闭源而创建的分支版本,在性能和一些新特性上,MariaDB是优于MySQL的,在稳定性上则是MySQL更胜一筹。
通常情况下,MariaDB跟MySQL在绝大多数方面是兼容的,对于开发者来说,几乎感觉不到任何不同。目前MariaDB是发展最快的MySQL分支版本,新版本发布速度已经超过了Oracle官方的MySQL版本。

相关文章:
MariaDB 和 MySQL 全面对比:选择数据库需要考虑这几点

MySQL和mongodb的区别和应用场景?

谈谈mongodb,mysql的区别和具体应用场景

高可用环境下的脑裂情况你了解吗?怎么解决?

haproxy和keepalive
脑裂产生以及解决办法

猜你喜欢

转载自blog.csdn.net/qq_36641456/article/details/89044060