Linux运维工程师面试题第三套

简介:

1linux如何挂在windows下的共享目录?

mount -t cifs -o username=windows登陆账号,password="windows账号对应的密码"//16.187.190.50/test /mnt/linux目标文件夹

或者  muout.cifs  //本机IP地址/test /mut/linux目标文件夹 -o username="windows登陆账号",password="windows账号对应的密码"

【评析】这套题其实是蛮有难度,从第一题就能看出来,有点下马威的意思。挂载本身不难,但是挂载到windows共享目录在实际中应用到场合不多,所以这道题有条件可以自己试试,没条件就背下来。注意空格,注意逗号。


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

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


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 -10


4查看当前系统每个IP的连接数

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


5shell下32位随机密码生成并且保存到/mima.txt文件里

cat /dev/urandom|head -1|md5sum|head -c 32 >/mima.txt

【评析】/dev/urandom这个文件可以尝试cat一下,里面的东西我是看不懂,即使后面加上head -1我依旧看不懂,但是加上md5sum我就能看懂了。其实第一个head后面-1也行,-2也行,-100也行,只要别是太大的数字都可以。head -c 32的意思就是从头到第32个字节,如果是head -c 100就是从头到第100个字节,也是“100位密码”的意思

/dev/urandom这个东西要比/dev/random好用,因为后者会有堵塞的问题,前者一样安全而且速度还很快。


6统计出apache的access.log中访问量最多的5个IP

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


7CentOS查看/监测网卡流量的命令

watch more /proc/net/dev

【评析】现在有的面试官自觉不自觉的就把“网络工程师”的任务跟“运维工程师”的任务混为一谈,如果面试官顺便问cisco机器如何监察网络流量,步骤如下:

执行命令:configure terminal 回车进入全局配置模式;

执行命令:interface fastEthernet 0/1 回车进入端口0/1;

执行命令:ip accounting 回车;

exit:退出全局配置模式;

执行:show ip accouting , 回车就可以查看了。


8ps aux 中的VSZ代表什么意思?RSS代表什么意思?

VSZ:虚拟内存集,进程所占用的虚拟内存的大小

RSS:实际内存集,进程所占用的实际内存的大小


9符号链接与硬链接的区别

硬链接是复制,享用同一个inode,不能跨分区,不能连目录,a变b也变,但是a删b不删。

符号链接就是-s,不享用同一个inode,可以跨分区可以连目录,等于“快捷方式”。


10保存当前磁盘分区的分区表


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

在vim的命令状态下,先用:set nu显示每一行对应的行号,然后使用"5G"这种格式对应到第五行,若要删除该行就是dd;如果复制4行,那就是“4yy”,然后再需要复制的地方按p。如果需要在1~20行里把“AAA”替换成“BBB”那么命令就是:/1,20s/AAA/BBB/gc

【评析】如果遇到的是比较有板有眼的块型文档,可以使用awk命令直接切块,也可以在vim状态下使用ctrl+v切块,然后y一下确定所切块的范围,最后在需要粘贴的地方p一下。


12手动安装grub

grub-install /dev/sda/


13检测并修复/dev/hda5

e2fsck -p /dev/hda5

【评析】如果要求是“检查 /dev/hda5 是否正常,如果有异常便自动修复,并且设定若有问答,均回答[是] ”,那么语句就是e2fsck -a -y /dev/hda5


14在1-39内取随机数

echo $[$RANDOM%39]

【评析】echo $RANDOM就是随机在0~32767出数。这个知识点和上面那个随机出32位密码的还是蛮常考的。


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

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


16FTP的主动模式和被动模式

主动模式:客户机向服务器的21端口主动发送请求,账户密码验证成功之后,客户机打开一个随机端口(应该是大于1024的口)然后用port命令通知服务器端,“我已经摆好姿势,一个大于1024的口在等待你”,然后服务器端的20口跟客户端的口建立连接,开始数据的传输。在主动模式里,是服务器端主动把数据给客户端。

被动模式:客户机向服务器的21端口主动发送请求,账户密码验证成功之后,服务器端开启一个随机端口,然后用pasv命令告诉给客户端,“我已经摆好姿势,一个随机口在等待你”,然后服务器端也开启一个随机的端口,然后两个随机的端口连接起来用来互通数据。在被动模式里,是客户端把数据从服务器端拉取到自己的电脑内。

【评析】无论是主动模式还是被动模式都是针对服务器而言的,画个图来解释一下主动模式:

wKiom1bCeLvBqdEqAABL-FwN-EE855.png

被动模式的图如下:

wKiom1bCeNzB1_6uAABTU1PWGjM196.png

补充一下,如果服务器端的iptables只开启了20端口和21端口,其他的全部都reject的话,是无法启动被动模式的,因为没有一个随机端口去用来发送数据,而且被动模式能用就用,主动模式能不用就不用。

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

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


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

grep '\:[1-9]\{1\}\:' /etc/inittab


19、统计/data/mysql目录里的普通文件个数

find /data/mysql/ -type f|wc -l

【评析】是-type f不是type -f,这个细节上别犯错。


20、用33m的颜色打出“天下英雄唯使君与操耳”这句话。

echo -e "\E[1;33m 天下英雄唯使君与操耳 \E[1;31m"

或者 echo -e "\E[1;33m" "天下英雄唯使君与操耳" $(tput sgr0)


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

1
2
3
4
5
6
7
8
#!/bin/bash
chkconfig: - 90 10
description: just a test
echo  "Hello,$1"
mv test /etc/init.d/
chmod +x /etc/init.d/test
chkconfig --add test
service test start        //可以看到Hello,start表示成功


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

1
2
3
4
5
6
7
Shell
#!/bin/bash
#description: useradd
for  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


23、写一个脚本,实现判断192.168.1.0/24网络里,当前在线的IP有哪些

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
for  ip  in  `seq 1 255`
   do
     {
      ping -c 1 192.168.1. $ip  > /dev/null 2>&1
      if  [ $?  -eq  0 ]; then
           echo 192.168.1. $ip  UP
      else
           echo 192.168.1. $ip  DOWN
      fi
    }&                     #多进程启动
done



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

1
2
3
4
5
6
7
8
9
10
11
12
#!/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 toedit]” answer
     case  $answer  in
         q | Q)
             exit 0;;
         *)
             vim  $file ;;
     esac



25、数据中有10000个数,其中某个数重复率达到50%以上,求快速找出这数的方法的思路

10000个数分成两两一组,然后比较不相同去掉,相同的留下,如果一次不能得到结果,再做一次,最终会得到结果。

【评析】上面这个方法好像很屌,但是说实话,在python里是没有最屌只有更屌!这种找出现次数最多的元素有一个模块可以直接抓取,不用这么费劲。

假设aaa就是这个多达10000个数的list。(如果数据不是list就转成list。)

1
2
3
4
>>>  from  collections  import  Counter
>>> word_counts = Counter(aaa)
>>> top_one = word_counts.most_common( 1 )
>>>  print (top_one)


=================================分割线============================================

这套题很经典,一些比较牛掰的公司拿来做笔试题是很够格的,问的东西很常用而且还需要一点绕弯弯。但是这套题最好是理解而不是100%的死记硬背,因为这套题实在是臭了大街了,几乎每个论坛都有。面试官应该不会再原模原样的拿出来考人。

几个脚本的编写也很经典,但是笔试的时候应该考的可能性不大,因为写出来太费时间,即使写出来了面试官也不能一下子就看出来个准确,主要是给大家练手。



 本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1742303

相关文章
|
2月前
|
C++
C/C++工程师面试题(指针篇)
C/C++工程师面试题(指针篇)
50 0
|
2月前
|
网络协议 网络性能优化 C++
C/C++工程师面试题(网络编程篇)
C/C++工程师面试题(网络编程篇)
42 0
|
2月前
|
Linux Shell 调度
Linux面试题
Linux 一般是指 Linux 内核、 Linux 系统、 Li nux 发行版。严格意义上说 Linux 是指由 Linus Torvalds 维护的并发布的内核。它的代码只包括内核而不包括其它方面的应用。内核提供系统核心服务,如进程管理,进程的调度,虚拟文件系统,内存的管理等等。
85 0
Linux面试题
|
9天前
|
Linux Go
Linux命令Top 100驱动人生! 面试必备
探索Linux命令不再迷茫!本文分10部分详解20个基础命令,带你由浅入深掌握文件、目录管理和文本处理。 [1]: <https://cloud.tencent.com/developer/article/2396114> [2]: <https://pan.quark.cn/s/865a0bbd5720> [3]: <https://yv4kfv1n3j.feishu.cn/docx/MRyxdaqz8ow5RjxyL1ucrvOYnnH>
64 0
|
15天前
|
安全 应用服务中间件 网络安全
渗透测试工程师面试题大全
渗透测试工程师面试题大全
|
29天前
|
敏捷开发 安全 API
C/C++ 工程师面试:如何精彩展示你的项目经验并获得高分
C/C++ 工程师面试:如何精彩展示你的项目经验并获得高分
73 0
|
1月前
|
消息中间件 Dubbo Java
互联网 Java 工程师1000道面试题(485页)
互联网 Java 工程师1000道面试题(485页)
28 0
|
1月前
|
算法 Linux 调度
嵌入式linux面试题目总结
嵌入式linux面试题目总结
34 0
|
2月前
|
Linux
Linux面试常用命令大全(常用指令)
Linux面试常用命令大全(常用指令)
|
2月前
|
运维 Linux Docker
Linux运维工程师必须要掌握的Docker命令,我给你整理好了!
Linux运维工程师必须要掌握的Docker命令,我给你整理好了!
169 2