Linux 运维工程师经典面试题合集(不断更新中 ...)

做运维以来,关注了很多关于互联网技术,培训等乱七八糟的公众号,时不时的就会推一些各种公司的面试题过来。
大致看了一下,发现自己很多知识要么遗忘了,要么很难说出个所以然,所以这里对那些个人觉得很有意思的知识点做个汇总,偶尔再翻看一下,或许受益无穷。
当然,学习永远是一个过程,这篇博客也正处于完善的过程 ...
【1】如何查看 HTTP 的并发请求数与其 TCP 连接状态?
netstat -n | awk '/^tcp/ {++b[$NF]} END {for(a in b) print a,b[a]}'
显示效果:

我这里是台测试机器,所以显示的东西比较少,而且我也很少用这个功能,但是觉得还是很有意思。
另外值得一提的是 Linux 服务器打开文件数也是影响并发的重要一环,具体可以查看该文件配置:/etc/security/limits.conf
当然同级目录下面的 limits.d 目录下的的配置文件也需要关注,也可以使用 ulimit -n 查看当前的配置数量。
【2】查看每个 IP 地址的连接数:
netstat -n | awk '/^tcp/ {print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -rn
效果如图:

这个东西大致可以看出有没有人在恶意访问你的服务器!
【3】通过 tcpdump 查看 80 端口访问量排前 10 的:
tcpdump -i eth0 -tnn dst port -c | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -
效果如图:

注意自己机器的 网卡名称 就行!
【4】统计 access.log 中访问量前 10 的 IP:
cat access.log | awk '{print $1}' | sort | uniq -c | sort -n -r | head -
效果如图:

这个比较实用,我们可以通过这个操作判断有些 非人为操作
【5】只查看 /var/log 这一级目录下面的文件:
find /var/log -maxdepth -type f
简单的 find 命令考察,有意思的就是 -maxdepth 参数,如果不加默认会把该目录下的其它目录下的子文件也显示
这个在用于我们按照时间点删除某个目录下面的文件的时候特别有用
【6】生成 32 位的随机码:
cat /dev/urandom | head - | md5sum | head -c
【7】如何查看二进制文件的内容?
一般通过 hexdump 命令查看,用法:hexdump -C 文件名,没怎么用过!
-C 是比较规范的 十六进制和ASCII码显示
-c 是单字节字符显示
-b 单字节八进制显示
-o 是双字节八进制显示
-d 是双字节十进制显示
-x 是双字节十六进制显示
显示样式:

【8】ps aux 中的 VSZ 代表什么意思,RSS 代表什么意思?
VSZ:虚拟内存集,进程占用的虚拟内存空间
RSS:物理内存集,进程战用实际物理内存空间
如图:

【9】如何检测并修复 /dev/hda1?
说明:fsck 命令
【10】Linux 系统的开机启动顺序:
加载 BIOS –> 读取 MBR –> Boot Loader –> 加载内核 –> 用户层 init (根据 inittab 设定系统运行的等级:一般 3 或 5)–> init 进程执行 rc.syninit –> 启动内核模块 –> 执行不同级别运行的脚本程序 –> 执行 /etc/rc.d/rc.local –> 执行 /bin/login
【11】软连接和硬链接的区别:
软连接(符号链接),类似 windows 系统里的快捷方式
硬链接,类似复制了一份,但是会跟着文件的改变而改变,但是不会因为删除而影响另一个
【12】FTP 的主动模式和被动模式:
FTP 有两种工作方式:PORT 方式和 PASV 方式
PORT(主动):
1. 客户端向服务端的 FTP 端口(默认是 21)发送连接请求
2. 服务端接受连接,建立一条命令链路
3. 传送数据时,客户端在命令链路上用 PORT 命令告诉服务端自己打开的随机端口
4. 服务端从 20 端口向收到的客户端的随机端口发送连接请求,建立一条数据链路来传送数据
PASV(被动):
1. 客户端向服务端的 FTP 端口(默认是21)发送连接请求,服务器接受连接
2. 建立一条命令链路,当传送数据时,服务端通过命令链路自己打开随机端口
3. 客户端向服务端的随机端口发送连接请求,建立一条数据链路来传送数据
【12】显示 /etc/inittab 中以 # 开头,且后面跟了一个或者多个空白字符,而后又跟了任意非空字符的行
grep "^\#[[:space:]]\{1,\}.\{1,\}" /etc/inittab
效果:

说明:这个一般用于剔除注释内容
【13】显示 /tmp/1.txt 中包含了 :一个数字: 的行
grep :[-]: /tmp/.txt
【14】显示 /tmp/1.txt 文件中以一个数字开头并以一个与开头数字相同的数字结尾的行:
grep "^\([0-9]\).*\1$" /tmp/.txt
说明:这个感觉很神奇
【15】 批量添加 10 个用户,用户名为 user01 - user10,密码为 user 后面跟 5 个随机字符:
#!/bin/bash for i in `seq -f "%02g" `;do
useradd user$i
echo "user$i`echo $RANDOM|md5sum|cut -c 1-5`" | passwd --stdin user$i >/dev/null >&
done
说明:这里有几点比较有意思,1 是产生 0 -10 的数并按照格式输出,2 是产生密码随机数并截取,3 是命令行添加密码
【16】判断 192.168.1.0/24 网络里,当前在线的 IP 有哪些,能 ping 通则认为在线:
#!/bin/bash for ip in `seq `;do
ping -c 192.168..$ip > /dev/null >&
if [ $? -eq ];then
echo "192.168.1.$ip UP"
else
echo "192.168.1.$ip DOWN"
fi
done
说明:这个需求有点意思,其实还是考察产生 1 - 255 的数字,这个脚本还是挺实用的
Linux 运维工程师经典面试题合集(不断更新中 ...)的更多相关文章
- Linux运维工程师中级面试题
1.解释top命令和vmstat命令 2.请写出iptables语句 3.mysql高可用方案有哪些?mysql备份方案有哪些?有什么缺点? 4.写出Apache 2.x的两种工作模式,以及各自的工作 ...
- 详解linux运维工程师入门级必备技能
详解linux运维工程师入门级必备技能 | 浏览:659 | 更新:2013-12-24 23:23 | 标签:linux it自动化运维就是要很方便的运用各种工具进行管理维护,有效的实施服务器保护 ...
- linux运维工程师面试题收集
面试必考 mysql5和mysql6 有什么区别 mysql-server-5.5:默认引擎改为Innodb,提高了性能和扩展性,提高实用性(中继日志自动恢复) mysql-server-5.6:In ...
- 做linux运维工程师,必须要掌握以下几个工具
linux系统如果是学习可以选用redhat或centos,特别是centos在企业中用得最多,当然还会有其它版本的,但学习者还是以这2个版本学习就行,因为这两个版本都是兄弟,没区别的,有空可以再研究 ...
- 要做linux运维工程师的朋友,必须要掌握以下几个工具才行 ...
要做linux运维工程师的朋友,必须要掌握以下几个工具才行 ... [复制链接] 发表于 2013-12-13 15:59 | 来自 51CTO网页 [只看他] 楼主 本人 ...
- Linux运维工程师入门的10大实用工具
说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具. 我就大概列出这几方面,这样入门就基本没问题了. 工具如下: 1.Linux系统基础 这个不用说了,是基础中的基础,连这 ...
- Linux运维工程师入门须掌握的10个技术点
本人是linux运维工程师,对这方面有点心得,现在我说说要掌握哪方面的工具吧 说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具. 我就大概列出这几方面,这样入门就基本没问 ...
- Linux 运维工程师的十个基本技能点
本人是linux运维工程师,对这方面有点心得,现在我说说要掌握哪方面的工具吧. 说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具.我就大概列出这几方面,这样入门就基本没问 ...
- linux运维工程师
本人是linux运维工程师,对这方面有点心得,现在我说说要掌握哪方面的工具吧说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具.我就大概列出这几方面,这样入门就基本没问题了 ...
随机推荐
- 技术流:6大类37种方式教你在国内推广App
转自:http://www.gamelook.com.cn/2015/01/201906 如何有效的推广自己App,是每个发行商都要考虑的问题,当然每个产品都有适合自己的推广方式.本文就集结了包括应用 ...
- python学习(二) 列表和元组
第2章 列表和元组 2.1 序列概论 python有六种内建的序列,本章讨论最常用的两种类型:列表和元组.其他的内建序列有字符串.Unicode字符串.buffer对象和xragne对象. 列表和元 ...
- mongodb基本操作和在springboot中的使用
本文介绍mongodb的使用 说明 起步 mongo通用类型 mongoshell的操作 CRUD操作 shell命令操作 索引操作 mongo在springboot中的使用 目录结构 依赖 prop ...
- flask系列九之使用falsk建立项目总结
待续.... 源码地址:https://gitee.com/FelixBinCloud/ZhiLiaoDemo/tree/master/ZhiLiao
- nginx反向代理负载均衡初次配置
反向代理,我个人理解是通过一台反向代理服务器,把客户端的把有请求按照一定的规则分发给后台的服务器.nginx作反向代理服务器的虚拟机配置如下: upstream itest { #正常情况下应该作如下 ...
- Spring Cloud Eureka 2 (Eureka Server搭建服务注册中心)
工具:IntelliJ IDEA 2017.1.2 x64.maven3.3.9 打开IDE file===>new===>project next next 选择相应的依赖 next ...
- easylogging++学习记录(一):接入
easylogging++是一个非常轻量级并且非常高效的一个日志库,支持文件配置,支持线程安全,并且其自定义格式非常的方便,最关键的是,其所有代码都集中在一个.h头文件之中,完全不需要引用第三方库,接 ...
- js点击按钮获取验证码倒计时
//发送验证码倒计时 var clock = ''; var nums = 60; var btn; $("#btnGetVerCode").click(function () { ...
- c++多线程编程(一)
C++本身并没有提供任何多线程机制,但是在windows下,我们可以调用SDK win32 api来编写多线程的程序,下面就此简单的讲一下: 创建线程的函数 HANDLE CreateThread( ...
- FastDFS介绍和配置过程 二
最近在研究负载均衡和集群,其中涉及到一个主要问题是,如何让集群中的real server共享一套文件系统.在网上查到FastDFS,国人(happy fish,感谢他的开源精神)开发的一套轻量级分 ...