企业运维经典面试题汇总(2)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 企业运维经典面试题汇总(2)

1、写一个脚本查找最后创建时间是三天前,后缀是*.log的文件并删除

find .-ctime +3 -name '*.log' | rm -rf

2、统计ip访问情况,要求分析nginx访问日志,找出访问页面数量在前十位的ip

cataccess.log | awk '{print $1}' | uniq -c | sort -rn | head -10

3、使用tcpdump监听主机为192.168.1.1,tcp端口为80的数据,同时将输出结果保存输出到tcpdump.log。

tcpdump 'host 192.168.1.1 and port 80' > tcpdump.log

4、利用Python打印前一天的本地时间,格式为'2016-03-29 13:58:34'

time.strftime('%y-%m-%d%H:%M%:%S' time.locatime(time.time() -86400))

5、用Python将‘123456’反转为‘654321’

‘123456’[::-1]

6、利用Python执行shell命令并取得返回结果

>>> import subprocess
>>> a=subprocess.popen('ls',shell=True,stdout=subprocoss.PIPE,
stderr=subprocess.PIPE)
>>>stdout,sterr = a.communicate()
>>>print stdout

7、请用Python继承process,并写一个并行执行的类,并写出使用过程。

import multiprocessing
import time
class ClockProcess(multiprocessing.Process):
    def __init__(self, interval):
        multiprocessing.Process.__init__(self)
        self.interval = interval
    def run(self):
        n = 5
        while n > 0:
            print("the time is {0}".format(time.ctime()))
            time.sleep(self.interval)
            n -= 1

8、有文件file1

a、请用shell查询file1 里面空行的所在行号

#awk '$0 ~ /^$/ {print NR}' file1

grep -n "^$" file1

b、编写ShellScript查询file1 以abc结尾的行

grep "abc$" file1

sed -n '/abc$/ p' file1

c、打印出file1 文件第1 到第3 行

sed  -n '1,3p' file1

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

Iptables –t nat -A PREROUTING -d 192.168.2.1 -p tcp  –dport 80 -j REDIRECT --to 8080

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

0 6-12/2 * 11 * /usr/bin/httpd.sh

11、编写个shell 脚本将/usr/local/test 目录下大于100K 的文件转移到/tmp目录下

find /usr/local/test -type f -size +100k -exec mv {} /tmp/

#!/bin/bash
filelist=$(ls  /usr/local/test -l | grep "^-" | awk '{print $9}') 
filepath="/usr/local/test"
for file in $filelist
do
    filesize=$(du -s $filepath$file |awk '{print $1}')
    if [ $filesize -gt 100]
    then
    mv $filepath$file /tmp/
fi
done

12、简述raid0 raid1 raid5 三种工作模式的工作原理及特点。

RAID 0:带区卷,连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,
RAID 0 只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。因此,RAID 0 不能应用于数据安全性要求高的场合。
RAID 1:镜像卷,它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据,不能提升写数据效率。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID
1 可以提高读取性能。RAID 1 是磁盘阵列中单位成本最高的,镜像卷可用容量为总容量的1/2,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。
RAID5:至少由3块硬盘组成,分布式奇偶校验的独立磁盘结构,它的奇偶校验码存在于所有磁盘上,任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据(最多允许1块硬盘损坏)。所以raid5可以实现数据冗余,确保数据的安全性,同时raid5也可以提升数据的读写性能。

13、oracle 数据库备份方式

从物理与逻辑的角度分类:
物理备份:对数据库操作系统的物理文件(如数据文件、控制文件、日志文件等)的备份,物理备份又分为冷备份和热备份,前者是在关闭数据库的时候进行的,后者对正以归档日志方式进行的数据库备份,可以使用RMAN进行数据库的物理备份
逻辑备份:对数据库逻辑组件(如表、表空间、存储过程等数据库对象)的备份逻辑备份的手段很多,如exp、数据泵expdp、数据库闪回技术等
从数据库的备份策略角度分类:
完全备份:每次对数据库进行完整备份
增量备份:只有那些在上次完全备份或者增量备份后被修改的文件才会被备份。
差异备份:备份那些自从上次完全备份之后被修改过的文件。

14、如何查看占用端口8080 的进程

netstat -anpt | grep 8080
 lsof -i :8080

15、请写出apache2.X 版本的两种工作模式,以及各自工作原理。如何查看apache 当前所支持的模块,并且查看是工作在哪种模式下?

prefork(多进程,每个子进程产生一个线程)和worker(多进程多线程,每个进程生成多个线程)
  其主要工作方式是:当Apache服务器启动后,mpm_prefork模块会预先创建多个子进程(默认为5个),每个子进程只有一个线程,当接收到客户端的请求后,mpm_prefork模块再将请求转交给子进程处理,并且每个子进程同时只能用于处理单个请求。如果当前的请求数将超过预先创建的子进程数时,mpm_prefork模块就会创建新的子进程来处理额外的请求。Apache总是试图保持一些备用的或者是空闲的子进程用于迎接即将到来的请求。这样客户端的请求就不需要在接收后等候子进程的产生。
由于在mpm_prefork模块中,每个请求对应一个子进程,因此其占用的系统资源相对其他两种模块而言较多。不过mpm_prefork模块的优点在于它的每个子进程都会独立处理对应的单个请求,这样,如果其中一个请求出现问题就不会影响到其他请求。Prefork在效率上要比Worker要高,但是内存使用大得多不擅长处理高并发的场景。
  Worker模式(多线程多进程):
和prefork模式相比,worker使用了多进程和多线程的混合模式,worker模式也同样会先预派生一些子进程,然后每个子进程创建一些线程,同时包括一个监听线程,每个请求过来会被分配到一个线程来服务。线程比起进程会更轻量,因为线程是通过共享父进程的内存空间,因此,内存的占用会减少一些,在高并发的场景下会比prefork有更多可用的线程,表现会更优秀一些;另外,如果一个线程出现了问题也会导致同一进程下的线程出现问题,如果是多个线程出现问题,也只是影响Apache的一部分,而不是全部。
总的来说,prefork方式速度要稍高于worker,然而它需要的cpu和memory资源也稍多于woker。
可以通过命令httpd  -M  或 httpd -l 可以查看apache 当前的模块
可以通过命令httpd  -V查看是工作在哪种模式下

16、你使用过监控软件吗?说说其特点

使用nagios对服务器进行监控,其特点侧重于对检测项的状态监控,主要通过nrpe实现对远程主机的监控,但也可以通过snmp对设备(如路由器、交换机)进行监控,可实时实现手机短信、电子邮件、MSN、飞信报警。
使用cacti 对服务器进行监控,其特点侧重性能和流量监控并通过图表显示,主要通过snmp协议收集监测项数据,可实时实现手机短信、电子邮件、
使用zabbix对服务器进行监控,zabbix是完全开源的工具,整合了cacti和nagios等特性。
zabbix可以对主机的性能监控、网络设备性能监控、数据库、FTP 等通用协议监控、多种告警方式、详细的报表图表绘制
支持自动发现网络设备和服务器(可以通过配置自动发现服务器规则来实现)
支持分布式,能集中展示、管理分布式的监控点,扩展性强
可以自己开发完善各类监控(根据相关接口编写程序实现),编写插件容易,可以自定义监控项,报警级别的设置。
数据收集,支持 snmp(包括 trapping and polling ),IPMI,JMX,SSH,TELNET;

17、你对现在运维工程师的理解和以及对其工作的认识

运维工程师在公司当中责任重大,需要保证时刻为公司及客户提供最高、最快、最稳定、最安全的服务。运维工程师的一个小小的失误,很有可能会对公司及客户造成重大损失,因此运维工程师的工作需要严谨及富有创新精神。

18、第一部分 基础题

a. 仅列出 /test目录下的所有目录,请写出完整命令

ls /test -l | grep "^d"

b. umask 022 ,请描述该命令的含义

umask设置文件或目录的缺省权限,umask 022表示目录的缺省权限为755,文件的缺省权限为644

c. 在排除 /test/a目录的条件下,归档并gzip压缩整个/test目录,请写出完整的操作命令t

tar zcvf backup.tar.gz --exclude /test/a /test

d. 查询并列出 test进程所打开的当前所有文件,请写出完整的操作命令

lsof -c test

e. 查询并列出test.rpm包里所包含的所有文件,请写出完整的操作命令

rpm -qpl
  test.rpm

f. 将 /test/a目录建立软链接到 /test/b目录,请写出完整的操作命令

ln -s /test/a test/b

g. 设置当前用户环境中 test变量为 123并使之立即生效,请写出完整操作命令

export test=123

h. 设置系统当前运行级别中 test服务状态为启动时自动加载,请写出完整操作命令

假设运行级别为3级别

chkconfig  --level  3  test  on

k. 列出当前系统中所有的网络连接(包含进程名),请写出完整操作命令

netstat -antuple
(-a 显示所有socket,包括正在监听的。
  -n 以网络IP地址代替名称,显示出网络连接情形。
  -t 显示TCP协议的连接情况
  -u 显示UDP协议的连接情况。
  -p 显示指定协议信息。
    -l或--listening 显示监控中的服务器的Socket。
  -e 显示以太网统计。此选项可以与 -s 选项结合使用。

j. 实时抓取并显示当前系统中tcp 80端口的网络数据信息,请写出完整操作命令

tcpdump -nn tcp port 80

19、第二部分综合应用

a. 请写出5个你常用的系统或网络维护工具的名称

rhel  centos  ubuntu
iotop用于检查 I/O 的使用情况
htop实质上是 top 的一个增强版本。它更容易对进程排序。
ping
traceroute

b.在nslookup使用中,请问如何查看test.com域中的MX记录

#nslookup
>set type=mx
>test.comc. ftp ,ssh,smtp,pop3,https,请写出这些服务的默认端口ftp:21
ssh:22
smtp:25
pop3:110
https:443.25G)

c. 请问如何用iptables工具阻断来自 192.168.0.1的所有网络连接

iptable -I INPUT -s 192.168.0.1 -j DROP

d. 请简要描述Linux系统下源代码编译方式安装软件的大致步骤

tar释放源码包
cd 切换到解压目录
./configure 配置
make 编译
make  install  安装

e. 请写出Tomcat程序的主配置文件名

server.xml

f. Mysql客户端工具中,请问如何查询当前所有的连接进程信息

mysql -u user -p password
-e "show processlist"

20. 服务器开不了机怎么解决一步步的排查

硬件有无报警灯提示
主面板液晶面板有没有提示什么报错信息,例如raid错误的提示信息
先排除硬件还是软件问题

21. Linux开机模式

0 - 表示关闭系统(千万不要把默认设置成0哦!)1 - 单用户模式2 - 多用户模式,没有NFS服务3 - 多用户文本模式5 - 图形模式6 - 系统重新启动
过修改/etc/inittab,使系统在启动时进入不同模式。

22. Linux系统中病毒怎么解决

找到病毒文件然后删除;中毒之后一般机器cpu、内存使用率会比较高,机器向外发包等异常情况,排查方法:
linux服务器流量剧增,用iftop查看有连接外网的情况。netstat连接的外网ip和端口。#top命令找到cpu使用率高的进程,一般病毒文件命名都比较乱#可以用ps aux 查看是否有不明进程,找出病毒文件的位置#rm
-f 命令删除病毒文件#检查计划任务、开机启动项和病毒文件目录有无其他可疑文件等
chkconfig    --list     |  grep  3:on
服务器启动级别是3的,检查一下了开机启动项,没有特别明显的服务。然后检查了一下开机启动的一个文件,more   /etc/rc.local

23. 发现一个病毒文件你删了他又自动创建怎么解决

ps axu一个个排查,方法是查看可疑的用户和系统相似而又不是的进程找出进程可疑。
杀掉所有与病毒相关的进程,然后删掉病毒这个可执行文件,最后删除病毒创建的文件

24. 日志文件很大,怎么把他们切分

针对这些日志按每或每周进行分割,例如只保留一周的数据,用logrotate来实现日志的轮替。或者编写日志文件大小监控脚本,定期检查该日志文件的大小,接近设定大小时,进行轮换。
如果日志文件存在并且很大,可以用Linux下的split进行文件分割:
模式一:指定分割后文件行数
Split:按指定的行数截断文件格式: split [-n] file [name]参数说明:-n: 指定截断的每一文件的长度,不指定缺省为1000行file: 要截断的文件name:截断后产生的文件的文件名的开头字母,不指定,缺省为x,即截断后产生的文件的文件名为xaa,xab....直到xzz
模式二:指定分割后文件大小
命令:split -b 10m server.log server_part_
其中server.log是要分割的文件,server_part_是分割文件的前缀。
对二进制文件我们同样也可以按文件大小来分隔

25. tcp/ip七层模型

应用层 (Application):
网络服务与最终用户的一个接口。
协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP
表示层(Presentation Layer):
数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层)
格式有,JPEG、ASCll、DECOIC、加密格式等
会话层(Session Layer):
建立、管理、终止会话。(在五层模型里面已经合并到了应用层)
对应主机进程,指本地主机与远程主机正在进行的会话
传输层 (Transport):
定义传输数据的协议端口号,以及流控和差错校验。
协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层
网络层 (Network):
进行逻辑地址寻址,实现不同网络之间的路径选择。
协议有:ICMP IGMP IP(IPV4 IPV6) ARP RARP
数据链路层 (Link):
建立逻辑连接、进行硬件地址寻址、差错校验等功能。(由底层网络定义协议)
将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。
物理层(Physical Layer):

26. 你常用的Nginx模块,用来做什么

rewrite模块,实现重写功能
access模块:来源控制
ssl模块:安全加密
ngx_http_gzip_module:网络传输压缩模块
ngx_http_proxy_module 模块实现代理
ngx_http_upstream_module模块实现定义后端服务器列表
ngx_cache_purge实现缓存清除功能

27、请列出你了解的web服务器负载架构。

Nginx
haproxy
keepalived
lvs
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
22天前
|
机器学习/深度学习 人工智能 运维
企业内训|LLM大模型在服务器和IT网络运维中的应用-某日企IT运维部门
本课程是为某在华日资企业集团的IT运维部门专门定制开发的企业培训课程,本课程旨在深入探讨大型语言模型(LLM)在服务器及IT网络运维中的应用,结合当前技术趋势与行业需求,帮助学员掌握LLM如何为运维工作赋能。通过系统的理论讲解与实践操作,学员将了解LLM的基本知识、模型架构及其在实际运维场景中的应用,如日志分析、故障诊断、网络安全与性能优化等。
52 2
|
3月前
|
运维 监控 Devops
DevOps文化下的企业运维转型
【8月更文挑战第22天】在数字化转型的浪潮中,DevOps不仅仅是一种技术实践,更是一种企业文化。本文将探讨如何在DevOps文化的引导下,实现企业运维的高效转型,包括理念更新、流程优化和团队协作等方面。我们将一起思考如何打破传统壁垒,构建一个更加灵活、高效和协同的运维体系,以应对不断变化的市场和技术挑战。
53 1
|
1月前
|
运维 Prometheus 监控
运维中的自动化实践每月一次的系统维护曾经是许多企业的噩梦。不仅因为停机时间长,更因为手动操作容易出错。然而,随着自动化工具的引入,这一切正在悄然改变。本文将探讨自动化在IT运维中的重要性及其具体应用。
在当今信息技术飞速发展的时代,企业对系统的稳定性和效率要求越来越高。传统的手动运维方式已经无法满足现代企业的需求。自动化技术的引入不仅提高了运维效率,还显著降低了出错风险。本文通过几个实际案例,展示了自动化在IT运维中的具体应用,包括自动化部署、监控告警和故障排除等方面,旨在为读者提供一些实用的参考。
|
2月前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
183 3
|
2月前
|
运维 监控 安全
高效运维管理:提升企业IT系统稳定性与性能
在当今信息化时代,高效的运维管理对于企业IT系统的稳定性和性能至关重要。本文将探讨如何通过优化运维流程、引入自动化工具和建立完善的监控体系等措施,实现高效运维管理,从而提升企业的核心竞争力。
|
3月前
|
运维 监控 测试技术
运维自动化:提升企业效率的关键技术
【8月更文挑战第19天】在数字化时代,企业面临着日益增长的技术挑战。运维自动化作为解决这些挑战的一种有效手段,不仅能够提高企业的运营效率,还能确保系统的稳定性和安全性。本文将探讨运维自动化的核心价值,分析其在现代企业中的作用,并讨论实施运维自动化时可能遇到的挑战及应对策略。通过深入理解运维自动化,企业可以更好地利用这一技术,以实现业务目标和提升竞争力。
|
3月前
|
运维 监控 安全
运维自动化:提升企业效率的关键策略
【8月更文挑战第18天】在数字化时代,企业的技术架构变得日益复杂。面对这种复杂性,传统的手动运维方式已难以满足快速、高效、可靠的业务需求。因此,运维自动化成为提升企业效率、保障系统稳定性的重要策略。本文将探讨运维自动化的核心价值、实施步骤以及面临的挑战,旨在为企业实现运维自动化提供一套清晰的指导思路。
|
1月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
52 4
|
2天前
|
机器学习/深度学习 数据采集 人工智能
智能运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的兴起背景、核心组件及其在现代IT运维中的应用。通过对比传统运维模式,阐述了AIOps如何利用机器学习、大数据分析等技术,实现故障预测、根因分析、自动化修复等功能,从而提升系统稳定性和运维效率。文章还深入分析了实施AIOps面临的挑战与解决方案,并展望了其未来发展趋势。 ####
|
11天前
|
机器学习/深度学习 数据采集 运维
智能化运维:机器学习在故障预测和自动化响应中的应用
智能化运维:机器学习在故障预测和自动化响应中的应用
35 4