• 回答数

    2

  • 浏览数

    109

吃货的晚宴
首页 > 工程师考试 > 运维工程师考试面试题

2个回答 默认排序
  • 默认排序
  • 按时间排序

生鱼旺旺

已采纳

运维岗位面试题

运维指互联网运维,通常属于技术部门,与研发、测试、系统管理同为互联网产品技术支撑的4大部门,这个划分在国内和国外以及大小公司间都会多少有一些不同。下面是我搜集的运维岗位面试题,欢迎大家阅读,希望对你有所帮助。

1、Linux如何挂载windows下的共享目录?

//IP地址/server /mnt/server -o user=administrator,password=123456

linux 下的server需要自己手动建一个 后面的user与pass 是windows主机的账号和密码 注意空格 和逗号

2、如何查看http的并发请求数与其TCP连接状态?

netstat -n | awk ‘/^tcp/ {++b[$NF]}’ END {for(a in b) print a,b[a]}’

还有ulimit -n 查看linux系统打开最大的文件描述符,这里默认1024,不修改这里web服务器修改再大也没用。若要用就修改很几个办法,这里说其中一个:

修改/etc/security/

* soft nofile 10240

* hard nofile 10240

重启后生效

3、如何用tcpdump嗅探80端口的访问看看谁最高?

tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F”.” ‘{print $1″.”$2″.”$3″.”$4″.”}’ | sort |uniq -c | sort -nr | head-5

4、如何查看/var/log目录下的文件数?

ls /var/log/ -1R | grep “-” | wc -l

5、如何查看Linux系统每个ip的连接数?

netstat -n | awk ‘/^tcp/ {print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | sort -rn

6、shell下生成32位随机密码

cat /dev/urandom | head -1 | md5sum | head -c 32 >> /pass

7、统计出apache的中访问量最多的5个ip

cat | awk ‘{print $1}’ | sort | uniq -c | sort -n -r | head -5

8、如何查看二进制文件的内容?

我们一般通过hexdump命令 来查看二进制文件的内容。

hexdump -C XXX(文件名) -C是参数 不同的参数有不同的意义

-C 是比较规范的 十六进制和ASCII码显示

-c 是单字节字符显示

-b 单字节八进制显示

-o 是双字节八进制显示

-d 是双字节十进制显示

-x 是双字节十六进制显示

9、ps aux 中的VSZ代表什么意思,RSS代表什么意思?

VSZ:虚拟内存集,进程占用的虚拟内存空间

RSS:物理内存集,进程战用实际物理内存空间

10、如何检测并修复/dev/hda5?

fsck用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查

11、介绍下Linux系统的开机启动顺序

加载BIOS–>读取MBR–>Boot Loader–>加载内核–>用户层init一句inittab文件来设定系统运行的等级(一般3或者

5,3是多用户命令行,5是界面)–>init进程执行–>启动内核模块–>执行不同级别运行的脚本程序–>执行/etc/(本地运行服务)–>执行/bin/login,就可以登录了。

12、符号链接与硬链接的区别

我们可以把符号链接,也就是软连接 当做是 windows系统里的 快捷方式。

硬链接 就好像是 又复制了一份,举例说明:

ln 这是硬链接,相当于复制,不可以跨分区,但修改3,4会跟着变,若删除3,4不受任何影响。

ln -s 这是软连接,相当于快捷方式。修改4,3也会跟着变,若删除3,4就坏掉了。不可以用了。

13、保存当前磁盘分区的分区表

dd 命令是以个强大的命令,在复制的同时进行转换

dd if=/dev/sda of=./ bs=1 count=512

14、如何在文本里面进行复制、粘贴,删除行,删除全部,按行查找和按字母查找?

以下操作全部在命令行状态操作,不要在编辑状态操作。

在文本里 移动到想要复制的行 按yy 想复制到哪就移动到哪,然后按P 就黏贴了

删除行 移动到改行 按dd

删除全部 dG 这里注意G一定要大写

按行查找 :90 这样就是找到第90行

按字母查找 /path 这样就是 找到path这个单词所在的位置,文本里可能存在多个,多次查找会显示在不同的位置。

15、手动安装grub

grub-install /dev/sda

16、修改内核参数

vi /etc/ 这里修改参数

sysctl -p 刷新后可用

17、在1-39内取随机数

expr $[RANDOM%39] +1

RANDOM随机数

%39取余数范围0-38

18、限制apache每秒新建连接数为1,峰值为3

每秒新建连接数 一般都是由防火墙来做,apache本身好像无法设置每秒新建连接数,只能设置最大连接:

iptables -A INPUT -d -p tcp –dport 80 -m limit –limit 1/second -j ACCEPT

19、FTP的主动模式和被动模式

FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。

PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请 求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT 命令告诉服务器:“我打开了XX端口,你过来连接我”。于是服务器从20端口向客户端的 XX端口发送连接请求,建立一条数据链路来传送数据。

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请 求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV 命令告诉客户端:“我打开了XX端口,你过来连接我”。于是客户端向服务器的XX端口 发送连接请求,建立一条数据链路来传送数据。

从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完 全不同。

20、显示/etc/inittab中以#开头,且后面跟了一个或者多个空白字符,而后又跟了任意非空白字符的行

grep “^#\{1,\}[^]” /etc/inittab

21、显示/etc/inittab中包含了:一个数字:(即两个冒号中间一个数字)的行

grep “\:[0-9]\{1\}:” /etc/inittab

22、怎么把脚本添加到系统服务里,即用service来调用?

在脚本里加入

#!/bin/bash

# chkconfig: 345 85 15

# description: httpd

然后保存

chkconfig httpd –add 创建系统服务

现在就可以使用service 来 start or restart

23、写一个脚本,实现批量添加20个用户,用户名为user01-20,密码为user后面跟5个随机字符

#!/bin/bash

#description: useradd

for i in `seq -f”%02g” 1 20`;do

useradd user$i

echo “user$i-`echo $RANDOM|md5sum|cut -c 1-5`”|passwd –stdinuser$i >/dev/null 2>&1

done

24、写一个脚本,实现判断网络里,当前在线的IP有哪些,能ping通则认为在线

#!/bin/bash

for ip in `seq 1 255`

do

ping -c 1 .$ip > /dev/null 2>&1

if [ $? -eq 0 ]; then

echo .$ip UP

else

echo .$ip DOWN

fi

}&

done

wait

25、写一个脚本,判断一个指定的脚本是否是语法错误;如果有错误,则提醒用户键入Q或者q无视错误并退出其它任何键可以通过vim打开这个指定的脚本

[root@localhost tmp]# cat

#!/bin/bash

read -p “please input check script-> ” file

if [ -f $file ]; then

sh -n $file > /dev/null 2>&1

if [ $? -ne 0 ]; then

read -p “You input $file syntax error,[Type q to exit or Type vim to edit]” answer

case $answer in

q | Q)

exit 0

;;

vim )

vim $file

;;

*)

exit 0

;;

esac

fi

else

echo “$file not exist”

exit 1

fi

26、写一个脚本,要求如何:

创建一个函数,能接受两个参数:

1)第一个参数为URL,即可下载的文件;第二个参数为目录,即下载后保存的位置;

2)如果用户给的目录不存在,则提示用户是否创建;如果创建就继续执行,否则,函数返回一个51的错误值给调用脚本;

3)如果给的目录存在,则下载文件;下载命令执行结束后测试文件下载成功与否;如果成功,则返回0给调用脚本,否则,返回52给调用脚本;

[root@localhost tmp]# cat

#!/bin/bash

url=$1

dir=$2

download()

{

cd $dir >> /dev/null 2>&1

if [ $? -ne 0 ];then

read -p “$dir No such file or directory,create?(y/n)” answer

if [ “$answer” == “y” ];then

mkdir -p $dir

cd $dir

wget $url 1> /dev/null 2>&1

else

return “51”

fi

fi

if [ $? -ne 0 ]; then

return “52”

fi

}

download $url $dir

echo $?

27、写一个脚本,详细需求如下:

1、创建一个函数,可以接受一个磁盘设备路径(如/dev/sdb)作为参数;在真正开始后面步骤之前提醒用户有危险,并让用户选择是否继续;而后将此磁盘设备上的所有分区清空(提示,使用命令dd if=/dev/zero of=/dev/sdb bs=512 count=1实现,注意其中的设备路径不要写错了;

如果此步骤失败,返回67给主程序;

接着在此磁盘设备上创建两个主分区,一个大小为100M,一个大小为1G;如果此步骤失败,返回68给主程序;

格式化此两分区,文件系统类型为ext3;如果此步骤失败,返回69给主程序;

如果上述过程都正常,返回0给主程序;

2、调用此函数;并通过接收函数执行的返回值来判断其执行情况,并将信息显示出来;

local Darray=(`ls /dev/sd[a-z]`)

for i in ${Darray};do

[[ “$i” == “$1” ]] && Sd=$i &&break

done

else

return66

fi

#当匹配成功,进入选择,告诉用户,是否继续,输错的话进入无限循环,当用户选择Y,则清空目标分区,且跳出while循环

while :;do

read -p “Warning!!!This operation will clean $Sd [y|n]:” Choice

case $Choice in

y)

dd if=/dev/zero of=$Sd bs=512 count=1 &> /dev/null &&break || return 67 ;;

n)

exit 88 ;;

*)

echo “Invalid choice,please choice again.” ;;

esac

done

#使用echo传递给fdisk进行分区,如果此命令失败,则跳转出去,错误值68,需要注意的是,有时候这个返回值很诡异,笔者之前成功与否都是返回的1,后来重启之后,就好了,如果慎重的话,可以对创建的分区,进行判断,不过就需要使用其他工具截取相关字段了,虽有些小麻烦,但无大碍

echo-e “n\np\n1\n\n+100M\nn\np\n2\n\n+1024M\nw\n”|fdisk /dev/sdb&> /dev/null || || return 68

#格式化之前,让内核重新读取磁盘分区表,值得注意的是,有的`系统版本,使用partprobe无效,譬如笔者的环境是,而以后,这个命令就很危险了,而使用partx -a /dev/sdb则效果更好…此项需慎重,如果格式化失败,则告知把失败的分区定义成变量,且跳出函数,并带出错误值69

`partprobe`

Part=`fdisk -l /dev/$Sd|tail -2|cut -d” ” -f1`

for M in ${Part};do

mke2fs -j $M &> /dev/null && ErrorPart=$M &&return 69

done

return 0

}

#下面代码,调用函数,接收函数返回值,根据返回值进行判断哪里出错。

Disk_Mod $1

Res=$?

[ $Res-eq 0 ] && exit 0

[ $Res-eq 66 ] && echo “Error! Invalid input.”

[ $Res-eq 67 ] && echo “Error! Command -> dd fdisk mke2fs

28、如何让history命令显示具体时间?

HISTTIMEFORMAT=”%Y-%m-%d %H:%M:%S”

export HISTTIMEFORMAT

重新开机后会还原,可以写/etc/profile

1、双绞线的两种制作标准的线序是:

EIA/TIA 568A:绿白、绿、橙白、蓝、蓝白、橙、棕白、棕;

EIA/TIA 568B:橙白、橙白、绿白、蓝、蓝白、绿、棕白、棕。

2、以下各设备的连接方法是:

PC-PC:反线、PC-HUB:正线、HUB-HUB反线 HUB-SWITCH:正线;

SWITCH-SWITCH:反线、SWITCH-ROUTER:正线、ROUTER-ROUTER:反线。

3、某公司申请到了一个C类的IP地址,但是需连接6个子公司,最大的子公司有 26台计算机,每个子公司放在一个网段中,那么子网掩码应该设置为。

4、已知某一主机IP 地址是,其子网的掩码是,则该主机是在_c_类网络中,其所在子网最多允许有_63__台主机。

5、PAT和NAT有什么区别?

答:都是网络地址转换,只不过不同的是一个是一对一,一个是一对多可复用地址转换,PAT是nat的一种。NAT中文全称是地址转换,一般指的是内部IP和内部全局IP一一对应;PAT中文全称是端口转换,一般指的是内部IP与内部全局IP一对多对应。

6、描述raid 0、1、5的特点和优点。

答:我们通过RAID 0可以获得更大的单个逻辑盘的容量,且通过对多个磁盘的同时读取获得更高的存取速度。RAID 0首先考虑的是磁盘的速度和容量,忽略了安全,只要其中一个磁盘出了问题,那么整个阵列的数据都会不保了。同RAID 0相比,RAID 1首先考虑的是安全性,容量减半、速度不变。RAID5把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。因此当RAID5的一个磁盘发生损坏后,不会影响数据的完整性,从而保证了数据安全。

7、配置一个与DNS集成的活动目录,客户端在加入域的时候提示找不到域控制器,其中最有可能出现问题的地方在哪里?

答:客户端没有将DNS指向和活动目录集成的DNS的缘故。

8、SQL复制的基本元素包括:出版服务器、订阅服务器、分发服务器、出版物、文章。SQL复制技术类型是:快照复制、事务复制、合并复制。

9、局域网内某台电脑不能通过UNC方式访问文件服务器,提示找不到路径,但其他客户端均可正常访问,该如何解决?

答:得先看看那个机器和其他的在不在同一网段下,你先PING下对方的IP就知道了。

10、windows群集(cluster)和网络负载均衡(NLB)各自的特点及用处是什么?

答:使用11ns 可以对加入到负载均衡的机器设置权重。系统自动根据权重比例来分析访问比例,对于流量比较大的网站,可以通过负载均衡功能把流量分配到几台不同的服务器上,以提高网站的运行速度。

11、服务器需要监控哪些项目?凭借这些项目如何判断服务器的瓶颈?

答:一般监控服务器的CPU,内存,磁盘空间,接口流量,IIS访问数、流量等数据库连接数。

运维工程师考试面试题

359 评论(15)

幼幼熙熙

给大家分享一些Linux面试题的笔记,从负载均衡、nginx、MySQL、redis、kafka、zabbix、k8s等方面拆解 Linux 知识点。用来对个人技术点进行查漏补缺。目录:1. 磁盘使用率检测(用shell脚本)2. LVS 负载均衡有哪些策略?3. 谈谈你对LVS的理解?4. 负载均衡的原理是什么?5. LVS由哪两部分组成的?6. 与lvs相关的术语有哪些?7. LVS-NAT模式的原理8. LVS-NAT模型的特性9. LVS-DR模式原理10. LVS-DR模型的特性11. LVS三种负载均衡模式的比较12. LVS的负载调度算法13. LVS与nginx的区别14. 负载均衡的作用有哪些?15. nginx实现负载均衡的分发策略16. keepalived 是什么?17. 你是如何理解VRRP协议的18. keepalived的工作原理?19. 出现脑裂的原因20. 如何解决keepalived脑裂问题?21. zabbix如何监控脑裂?22. nginx做负载均衡实现的策略有哪些23. nginx做负载均衡用到哪些模块24. 负载均衡有哪些实现方式25. nginx如何实现四层负载?26. 你知道的web服务有哪些?27. 为什么要用nginx28 . nginx的性能为什么比apache高?29 . epoll的组成30 . nginx和apache的区别31. Tomcat作为web的优缺点?32. tomcat的三个端口及作用33. fastcgi 和cgi的区别34. nginx常用的命令35. 什么是反向代理,什么是正向代理,以及区别?36. Squid、Varinsh、Nginx 有什么区别?37. nginx是如何处理http请求的38. nginx虚拟主机有哪些?39. nginx怎么实现后端服务的健康检查40. apache中的Worker 和 Prefork 之间的区别是什么?41. Tomcat缺省端口是多少,怎么修改42. Tomcat的工作模式是什么?43. Web请求在Tomcat请求中的请求流程是怎么样的?44. 怎么监控Tomcat的内存使用情况45. nginx的优化你都做过哪些?46. Tomcat你做过哪些优化47. nginx的session不同步怎么办48. nginx的常用模块有哪些?49. nginx常用状态码50. 访问一个网站的流程51. 三次握手,四次挥手52. 什么是动态资源,什么是静态资源53. worker支持的最大并发数是什么?54. Tomcat和Resin有什么区别,工作中你怎么选择?55. 什么叫网站灰度发布?56.. 统计ip访问情况,要求分析nginx访问日志,找出访问页面数量在前十位的ip57. nginx各个版本的区别58. nginx最新版本59. 关于nginx access模块的面试题60. nginx默认配置文件61. location的规则62. 配置nginx防盗链63. drop,delete和truncate删除数据的区别?64. MySQL主从原理65. MySQL主从复制存在哪些问题?66. MySQL复制的方法67. 主从延迟产生的原因及解决方案?68. 判断主从延迟的方法69. MySQL忘记root密码如何找回70. MySQL的数据备份方式71. innodb的特性72. varchar(100) 和varchar(200)的区别73. MySQL主要的索引类型74. 请说出非关系型数据库的典型产品、特点及应用场景?75. 如何加强MySQL安全,请给出可行的具体措施?76. Binlog工作模式有哪些?各什么特点,企业如何选择?77. 生产一主多从从库宕机,如何手工恢复?78. MySQL中MyISAM与InnoDB的区别,至少5点79. 网站打开慢,请给出排查方法,如是数据库慢导致,如何排查并解决,请分析并举例?80. xtrabackup的备份,增量备份及恢复的工作原理81.误执行drop数据,如何通过xtrabackup恢复?82. 如何做主从数据一致性校验?83. MySQL有多少日志84. MySQL binlog的几种日志录入格式以及区别85. MySQL数据库cpu飙升到500%的话他怎么处理?86. redis是单线程还是多线程?87. redis常用的版本是?88. redis 的使用场景?89. redis常见的数据结构90. redis持久化你们怎么做的?91. 主从复制实现的原理92. redis哨兵模式原理93. memcache和redis的区别94. redis有哪些架构模式?95. 缓存雪崩?96. 缓存穿透97. 缓存击穿98. redis为什么这么快99. memcache有哪些应用场景100. memcache 服务特点及工作原理101. memcached是如何做身份验证的?102. mongoDB是什么?103. mongodb的优势104. mongodb使用场景105. kafka 中的ISR,AR代表什么,ISR伸缩又代表什么中的broker 是干什么的107. kafka中的 zookeeper 起到什么作用,可以不用zookeeper么108. kafka follower如何与leader同步数据109. kafka 为什么那么快110. Kafka中的消息是否会丢失和重复消费?111. 为什么Kafka不支持读写分离?112. 什么是消费者组?113. Kafka 中的术语114. kafka适用于哪些场景115. Kafka写入流程:116. zabbix有哪些组件117. zabbix的两种监控模式118. 一个监控系统的运行流程119. zabbix的工作进程120. zabbix常用术语121. zabbix自定义发现是怎么做的?122. 微信报警123. zabbix客户端如何批量安装124. zabbix分布式是如何做的125. zabbix proxy 的使用场景126. prometheus工作原理127. prometheus组件128. ELK工作流程129. logstash的输入源有哪些?130. logstash的架构131. ELK相关的概念132. es常用的插件134. zabbix你都监控哪些参数135. MySQL同步和半同步136. CI/CD137 K8S监控指标138. k8s是怎么做日志监控的139. 【运维面试】k8s中service和ingress的区别140. k8s组件的梳理141. 关于tcp/IP协议142. 谈谈你对CDN的理解

108 评论(9)

相关问答