某公司运维岗位笔试题5

网XXX运维面试题

1.简述Linux系统的开机启动程序

(1)加载并执行内核
第一个被加载的东西就是内核。然后把内核在内存中解压缩,就可以开始运行了。
(2)/sbin/init进程
init进程是接下来第一个被启动运行的(非内核进程),因此它的进程编号PID的值总是1。
1) 首先,init进程读取配置文件/etc/inittab,决定需要启动的运行级别(Runlevel),每个级别分别由0到6的整数表示。
2) 然后执行/etc/rc.d/rc.sysinit。它做的工作非常多,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等
准备好以上一切之后,系统开始进入用户层的初始化阶段。
(3)启动内核模块:
依据/etc/modules.conf文件或/etc/modules.d目录下的文件来装载内核模块
(4)执行运行级别目录rcX.d下的脚本 。
执行/etc/rc.d/rc和/etc/rc.d/rcX.d目录下的脚本。  X为缺省运行级别。
(5)执行/etc/rc.d/rc.local 。
执行用户自定义启动脚本。你可以把你想设置和启动的东西放到这里。
(6)/sbin/mingetty /bin/login
等待用户登陆

2.请分别闸述在/etc/fstab中各个字段代表的意义

格式:tmpfs    /dev/sda1    tmpfs  defaults     0 0

第1列是需要挂载的文件系统或存储设备,
第2列是挂载点,
第3列指定文件系统或分区的类型, 
第4列为挂载选项,
第5列为dump选项,
第6列为fsck选项

3.当你在浏览器中输入www.baidu.com.回车后返回百度的首页,请简述整个dns解析的流程

当访问www.baidu,com时,首先查找本地dns缓存是否存在网站的IP记录,
如果本地没有记录,则向本地首选DNS服务器发送www.baidu,com的dns查询请求。
本地DNS服务器接收查询请求后,首先查询缓存是否存在此域名的dns记录,
如果找不到记录,则向根DNS服务器发送DNS解析请求。
根DNS服务器向本地DNS服务器返回此域名的NS记录(即此域名的DNS服务器)。
本地DNS服务器向此域名的DNS服务器发送DNS解析请求。
此域名的DNS服务器查找此域名的IP解析,并返回给本地DNS服务器。
本地DNS服务器对此记录进行缓存,并返回给客户端此域名的DNS解析结果。

4.请简述以下tcp连接三次握手的过程

第一次握手:建立连接时,客户端发送请求包到服务器,并进入到请求连接的状态,等待服务器确认
第二次握手:服务器收到请求包必须确认客户的请求连接,同时自己也发送一个请求包,此时服务器进入等待连接状态
第三次握手:客户端收到服务器的请求和确认包,向服务器发送确认包,发送完毕后客户端和服务器进入连接成功的状态,完成三次握手

5.请简述MySQl 主从复制的基本原理,以及你所用过的mysql中间件的特性

主把同步数据存储到bin-log(二进制日志)日志中。
从开启数据同步,生成I/O线程和SQL线程,I/O线程向主请求连接,连接后I/O线程把同步数据存储到relay-log(中继日志)日志中。
SQL线程把relay-log日志中需要同步的数据转换成自己的数据

6.简述你所知道的nginx优化措施

1.隐藏版本信息
2.隐藏nginx要修改的源代码
3.更改nginx服务的默认用户
4.降权启动nginx
5.优化nginx进程个数
6.绑定不同的nginx进程到不同的CPU上
7.Nginx事件处理模型优化
8.调整nginx单个进程允许的客户端最大连接数
9.配置nginx worker进程对打打开文件数
10.开启高效文件传输模式
11.Nginx gzip压缩实现性能优化
12.编写脚本实现日志轮询
13.不记录不需要的日志
14.访问日志的权限设置
15.根据扩展名限制程序和文件访问
16.禁止访问指定目录下的所有文件和目录
17.限制网站来源的IP访问
18.配置nginx禁止非法域名解析访问企业网站
19.nginx防爬虫优化
20.控制nginx并发连接数量

7.需求:判断192.168.1.0/24网络中,当前在线的ip有哪些,请写出脚本并打印日志

#!/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

8.mysql数据备份需求:
(1)现有一台数据库,我需要每天凌晨2:00进行数据库备份,以data库为例,为文件名保存在/opt/mysqldatabackup目录下。

/root/bin/backup.sh(脚本路径+脚本名字)
#!/bin/bash
mysqldump -u用户名 -p密码 data > /opt/mysqldatabackup
定时执行脚本,编辑定时任务:
crontab -e
0 2 * * * /root/bin/backup

(2)以上mysql数据我只需要保存七天的备份数据,请问如何解决。请写出命令。

#!/bin/bash
backupdir=/bak/mysqlbak
time=` date +%Y%m%d%H `
mysql_bin_dir/mysqldump -u user -ppassword dataname1 | gzip
> $backupdir/name1$time.sql.gz
mysql_bin_dir/mysqldump -u user -ppassword dataname2 | gzip
> $backupdir/name2$time.sql.gz
find $backupdir -name "name_*.sql.gz" -type f -mtime +7 -exec
rm {} ; > /dev/null 2>&

9.如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.2.1

 Iptables -A PREROUTING -d 192.168.2.1 -p tcp -m tcp -–dport 80 -j DNAT -–to-destination 192.168.2.1:9000

10.简述raid0 raid1 raid5 三种工作模式的工作原理及特点
又是raid的问题,看看有多少家面试都在问,去看看老师的raid速记口诀吧。

raid0  不变    raid1 n 的一半   raid5 n-1

11.过apache访问日志access.log统计IP和每个地址访问的次数,按访问量日志格式样例如下:
192.168.1.247 - -[02/Jul/2010:23:44:59 +0800] “GET/HTTP/1.1”

cat access_log | awk ‘{print $1}’ | uniq -c|sort -rn|head -10

12.有域名列表文件内容如下:
http://a.domain.com/1.html
http://a.domain.com/2.html
http://a.domain.com/1.html
http://a.domain.com/2.html
http://a.domain.com/1.html
http://a.domain.com/3.html
http://a.domain.com/4.html
http://a.domain.com/5.html
http://a.domain.com/5.html
需求:取出域名,统计域名出现的次数并排序,shell或者python

awk -F "/" '{baidu[$3]++}END{for(name in baidu)print name,baidu[name]}' awk2.txt

13.请简述你用过的负载均衡的方案,以及他们的优缺点

LVS优点
1.抗负载能力强,使用IP负载均衡技术,只做分发,所以LVS本身并没有多少流量产生;
2.稳定性、可靠性好,自身有完美的热备方案;(如:LVS+Keepalived)
3.应用范围比较广,可以对所有应用做负载均衡;  
4.不支持正则处理,不能做动静分离。
nginx优点
1.工作在7层,可以对做正则规则处理;(如:针对域名、目录进行分流)
2.配置简单,能ping通就能进行负载功能,可以通过端口检测后端服务器状态,不支持url检测;  
3.抗高并发,采用epoll网络模型处理客户请求;
4.只支持HTTP和EMail,应用范围比较少;  
5.nginx主要是HTTP和反向代理服务器,低系统资源消耗。

LVS想进一步了解可以去看老师讲的专题:常见面试问题LVS

14.编写一个shell脚本将/vst/local/test目录下大于100K的文件转移到/tmp下

#!/bin/bash
for file in `ls /root`
do
if [ -f $file ]; then
 if [ `ls -l $file|awk '{print $5}'` -gt 10000 ]; then
 mv $file /tmp/
 fi
fi
done

15.这是route -n命令的执行结果,请简述每行的意义
(1)Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
122.74.0.0 122.33.22.1 255.255.254.0 U 0 0 0 eth0
164.214.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth1
0.0.0.0 122.73.111.254 0.0.0.0 UG 0 0 0 eth0

前两条是自动生成的,因为是直连的网段,在每块网卡上每配置一个IP就会生成一条记录(一个网卡上可以配置多个IP)。表示去往这两个网段的数据包,直接由网卡接口eth0及eth1发出去

这两条记录中的gaetway并没有意义,Flags那一列中有G时才会使用Gateway。这两条路由并没有这样的标志,由于它们是本地的,匹配这些条目的数据包会直接通过Iface列中的网卡发送出去。

(2)现在要通过eth1到122.72.100.3的路由,网关是122.72.111.1,请问该如何做?

route add -net 122.72.100.3 netmask 255.255.255.0 gw 122.72.111.1

16.你认为的运维工程师的职责理念是什么?了解devops吗?说说你得理解。

1.理念自己想,自己想做什么心理有点数,要不也别做了。
2.devops 是一组过程、方法、和系统的统称,用于促进开发、技术运营和质量保证部门之间的沟通、协作与整合。 他是一种重视软件开发人员(Dev)和 it运维技术人员(Ops)之间的沟通合作的文化。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更快捷、频繁和可靠。可以改变传统的CI/CD方式,使
按时交付软件产品和服务更为便捷,开发和运营工作也形成紧密合作。

猜你喜欢

转载自blog.csdn.net/xzm5708796/article/details/89342380