运维面试题, 不知是否正确的答案

1、简述TCP三次握手四次挥手过程及各过程中客户端和服务器端的状态。

握手:

client 发送请求SYN到 server; 状态:server;初始状态为LISTEN,client 发送SYN后变为SYN_SENT

server 发送ACK回应,并发送SYN请求到 client;状态:服务器收到SYN后,变为SYN_RCVD,发送ACK+SYN后,变为ESTAHLISHED

client 发送ACK到服务端,连接建立。 客户端变为ESTABLISHED

挥手:

client 发送断开请求FIN到 server;状态:客户端发送FIN后,变为FIN_WAIT_1

server 发送ACK回应 client;状态:server收到FIN后,变为CLOSE_WAIT,client收到ACK后,变为FIN_WAIT_2

server 发送FIN到 client;状态:server发送FIN后,变为LAST_ACK状态,client收到FIN后,变为TIME_WAIT

client 发送ACK到 server,连接断开;状态:server收到ACK后,变为CLOSED。

2、说说进程和线程的区别

进程是程序在执行过程中的基本单位。每个进程至少包含一个线程,线程之间可以共享变量,进程之间需要使用queue等机制实现变量的共享。

3、查询file.txt以abc结尾的行

grep 'abc$' file.txt

4、删除file.txt文件中的空行

sed -i ‘/^$/d’ file.txt

5、打印file.txt文件中的第10行

sed -n ‘10p’ file.txt

6、对MySQL数据库test进行备份和恢复

备份:mysqldump -uroot -p test > ~/test.sql

恢复:mysql -uroot -p < ~/test.sql

7、用netstat统计系统当前tcp连接的各种状态的连接数。

netstat -an | awk '/^tcp/ {print $NF}' |uniq -c

8、linux下如何将GBK编码格式的test_gbk.txt文件转换成UTF-8编码格式,转化后的文件名为 test_utf8.txt

#!/bin/env python

f_gbk = open(‘test_gbk.txt’, ‘r’)

f_utf = open(‘test_utf8.txt’,’a’)

for line in f_gbk: 

line = line.decode(‘gbk’) 

f_utf.write(line.encode(‘utf-8’))

f_gbk.close()

f_utf.close()

9、说说你用过哪些监控软件,并简述其原理及适用场景

zabbix,原理:agentd搜集被监控服务器的信息,传给服务端,服务端写入数据库。

再通过php的网页将数据展现出来

适用场景:监控支持snmp的设备,监控linux主机,监控mysql redis mangodb的状态

10、写出查看linux系统性能的命令,如cpu、内存、流量、io等

ps top free iostat vmstat netstat iptraf

终极解决方案 阿里巴巴开源的tsar

11、说说nginx的upstream支持的分配策略,并简述其原理

轮询:请求按顺序分配到后端服务器

weight:与轮询相同,对weight增加权重

ip_hash: 根据ip的hash结果分配到固定的后端服务器

url_hash: 与ip_hash相同,不过按照url的hash结果分配到固定的后端服务器

12、crontab定时:在11月份内,每天的早上6点到12点中,每隔2小时执行一次/usr/bin/httpd.sh  怎么实现

echo '*  6-12/2 * 11 * root /usr/bin/httpd.sh' >> /etc/crontab

13、iptables禁止 ip 10.10.10.1 访问本地80端口

iptables -A INPUT -s 10.10.10.1 -p tcp —dport 80 -j DROP

14、找出在文件a中但不在文件b中的内容,用命令后编写脚本实现

#!/bin/bash

diff a b | grep '>' | sed -r 's/>(.*)/\1/g'

15、编写shell循环创建100个用户,用户名格式user_[0~99]

#!/bin/bash

for i in `seq 0 99`; do

useradd "user_$i"

done

原创文章,作者:aaron,如若转载,请注明出处:http://www.178linux.com/18969

(0)
aaronaaron
上一篇 2016-06-23 11:08
下一篇 2016-06-23 11:09

相关推荐

  • Shell脚本编程基础之一

      Linux为高效管理系统,提供了CLI命令行接口,供用户在命令提示符下输入命令,它有很多bash shell基础特,根据这些特性能够很灵活的使用命令,也支持使同时输入多个命令执行,命令之间用冒号分隔;但是要完成复杂多次重复性的操作,非常不便,系统管理工作变得很是繁忙,很难轻松完成工作任务;不过Linux的shell支持脚本编程,通过编写纯文本格…

    Linux干货 2016-08-15
  • 文件查找

    文件查找: locate查找:     locate:     依赖于事先构建好的索引库,操作系统刚完成没有       系统自动实现(周期性任务);      &nbs…

    Linux干货 2016-08-15
  • 十三.Linux博客-2016年8月18日while、for特殊用法、selet循环与菜单、函数

    格式说明: 操作 概念 命令 说明及举例 十三.while、for特殊用法、selet循环与菜单、函数 while特殊用法 while循环的特殊用法(遍历文件的每一行): while read line; do 循环体 done < /PATH/FROM/SOMEFILE 依次读取/PATH/FROM/…

    Linux干货 2016-08-24
  • 测试so接口函数的脚本 [python]

    下面是一个测试solib库中调用函数的测试脚本,但该脚本还存在这一些问题,我目前无法理解和解决; 问题: 1.我定义了logging采用日志滚动的方式,写日志,并且每个日志的大小是20M,但测试结果发现日志连1M都没到就开始轮转了,并且在轮转过程中,还出现logging写日志,却发现,日志轮转了,结果竟然报了,轮转日志不存在。 Traceback (most…

    Linux干货 2016-01-05
  • Linux的哲学思想

    Linux的哲学思想 linux有个哲学的思想是一切皆文件 其中linux硬件设备也是通过文件来表示的 物理终端 物理终端指的是显示器等硬件终端设备,文件存在于 /dev/console 这个路径下 虚拟终端 虚拟终端指的是在linux命令行连接的终端,文件存在于 /dev/tty# [1,6] 这个路径下 串行终端 指的是使用计算机串行端口连接的终端设备,…

    Linux干货 2018-02-23
  • 内置数据结构,列表及其方法

    List:列表有若干个元素,元素可以是任意对象,元素有顺序,可以使用索引和迭代,使用线性结构,使用[ ]进行描述,在内存中的空间是连续的,每个元素在内存中的空间是一样的………列表是可变的,列表不能一开始就定义大小,列表索引不可以超界   列表索引l.index(),从左向右搜索,发现第一个匹配的,自动返回搜索的值的索引;匹配不到,抛出异常Value…

    Linux干货 2018-03-25