当前位置: 首页 > news >正文

Linux系统——面试题分享

目录

1.现在给你三百台服务器,你怎么对他们进行管理?

2.简述 raid0 raid1 raid5 三种工作模式的工作原理及特点

2.1RAID 0 ——可以是一块盘和 N 个盘组合

2.2RAID 1 ——只能2块盘,盘的大小可以不一样,以小的为准

2.3RAID 5 ——3块盘,容量计算10 *(n-1),损失一块盘

2.4对比

3.LVS、Nginx、HAproxy 有什么区别?工作中你怎么选择?

3.1区别

3.2工作选择

4.Squid、Varinsh 和 Nginx 有什么区别,工作中你怎么选择?

4.1什么是代理服务器

4.2区别

4.3工作中选择

5.Tomcat和Resin有什么区别,工作中你怎么选择?

6.什么是中间件?什么是JDK?

6.1中间件

6.2JDK

7.讲述一下Tomcat8005、8009、8080三个端口的含义?

8.什么叫CDN?

9.什么叫网站灰度发布?

10.简述 DNS 进行域名解析的过程?

11.RabbitMQ 是什么东西?

12.讲述一下LVS三种模式的工作过程?

12.1NAT模式(VS-NAT)

12.2IP隧道模式(VS-TUN)

12.3直接路由模式(VS-DR)

13.MySQL 的 innodb 如何定位锁问题,MySQL 如何减少主从复制延迟?

13.1MySQL 的 innodb 如何定位锁问题

13.2MySQL 如何减少主从复制延迟

13.3MySQL 数据库主从同步延迟解决方案

14.如何重置 MySQL Root 密码?

14.1在已知MYSQL数据库的ROOT用户密码的情况下,修改密码的方法

14.2如果忘记了mysql数据库的ROOT用户的密码,又如何做呢?

15.lvs/nginx/haproxy 优缺点

15.1Nginx

15.1.1优点

15.1.2缺点

15.2LVS 

15.2.1优点

15.2.2缺点

15.3HAProxy

16.Mysql数据备份工具

16.1Mysqldump工具

16.2基于LVM快照备份

16.3tar包备份

17.keepalive的工作原理和如何做到健康检查

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

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

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

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

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

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

23.1造成服务器故障的原因可能有以下几点

23.2如何排查服务器故障的处理步骤如下

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

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

26.TCP/IP的七层模型

26.1应用层(Application)

26.2表示层(Presentation Layer)

26.3会话层(Session Layer)

26.4传输层(Transport)

26.5网络层(Network)

26.6数据链路层(Link)

26.7物理层(Physical Layer)

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

28.请列出你了解的web服务器负载架构

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

30.用tcpdump嗅探80端口的访问看看谁最高

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

32.已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近 7 天的访问日志!请问如何解决?请给出解决办法或配置或处理命令

32.1创建文件脚本

32.2解决办法

33.如何优化 Linux系统

34.请执行命令取出 linux 中 eth0 的 IP 地址

35.每天晚上 12 点,打包站点目录/var/www/html 备份到/data 目录下(最好每次备份按时间生成不同的备份包)


1.现在给你三百台服务器,你怎么对他们进行管理?

  1. 设定跳板机,使用统一账号登录,便于安全与登录的考量。
  2. 使用 salt、ansiable、puppet 进行系统的统一调度与配置的统一管理。
  3. 建立简单的服务器的系统、配置、应用的 cmdb 信息管理。便于查阅每台服务器上的各种信息记录。

2.简述 raid0 raid1 raid5 三种工作模式的工作原理及特点

RAID,可以把硬盘整合成一个大磁盘,还可以在大磁盘上再分区,放数据
还有一个大功能,多块盘放在一起可以有冗余(备份)
RAID整合方式有很多,常用的:0、1、5、10

2.1RAID 0 ——可以是一块盘和 N 个盘组合

  • 优点读写快,是 RAID 中最好的
  • 缺点:没有冗余,一块坏了数据就全没有了

2.2RAID 1 ——只能2块盘,盘的大小可以不一样,以小的为准

  • 10G+10G只有10G,另一个做备份。它有100%的冗余,
  • 缺点:浪费资源,成本高

2.3RAID 5 ——3块盘,容量计算10 *(n-1),损失一块盘

特点,读写性能一般,读还好一点,写不好

2.4对比

  • 冗余从好到坏:RAID1>RAID10>RAID 5>RAID0
  • 性能从好到坏:RAID0>RAID10>RAID5>RAID1
  • 成本从低到高:RAID0<RAID5<RAID1<RAID10

单台服务器:很重要盘不多,系统盘,RAID1
数据库服务器:主库:RAID10 从库 RAID5\RAID0(为了维护成本,RAID10)
WEB服务器,如果没有太多的数据的话,RAID5,RAID0(单盘)
有多台,监控、应用服务器,RAID0 RAID5

我们会根据数据的存储和访问的需求,去匹配对应的RAID级别

3.LVS、Nginx、HAproxy 有什么区别?工作中你怎么选择?

  • LVS:是基于四层的转发
  • HAproxy:是基于四层和七层的转发,是专业的代理服务器
  • Nginx:是WEB服务器,缓存服务器,又是反向代理服务器,可以做七层的转发

3.1区别

LVS由于是基于四层的转发所以只能做端口的转发,而基于URL的、基于目录的这种转发LVS就做不了。

3.2工作选择

  • HAproxy 和 Nginx 由于可以做七层的转发,所以 URL 和目录的转发都可以做
  • 在很大并发量的时候我们就要选择LVS,像中小型公司的话并发量没那么大
  • 选择 HAproxy 或者 Nginx 足已,由于 HAproxy 由是专业的代理服务器
  • 配置简单,所以中小型企业推荐使用 HAproxy

4.Squid、Varinsh 和 Nginx 有什么区别,工作中你怎么选择?

Squid、Varinsh 和 Nginx 都是代理服务器

4.1什么是代理服务器

能当替用户去访问公网,并且能把访问到的数据缓存到服务器本地,等用户下次再访问相同的资源的时候,代理服务器直接从本地回应给用户,当本地没有的时候,我代替你去访问公网,我接收你的请求,我先在我自已的本地缓存找,如果我本地缓存有,我直接从我本地的缓存里回复你;如果我在我本地没有找到你要访问的缓存的数据,那么代理服务器就会代替你去访问公网。

4.2区别

  • Nginx 本来是反向代理/web服务器,用了插件可以做做这个副业,但是本身不支持特性挺多,只能缓存静态文件
  • 从这些功能上。varnish 和 squid 是专业的 cache 服务,而 nginx 这些是第三方模块完成
  • varnish 本身的技术上优势要高于 squid,它采用了可视化页面缓存技术

在内存的利用上,Varnish 比 Squid 具有优势,性能要比 Squid 高。还有强大的通过 Varnish 管理端口,可以使用正则表达式快速、批量地清除部分缓存。它是内存缓存,速度一流,但是内存缓存也限制了其容量,缓存页面和图片一般是挺好的

  • squid 的优势在于完整的庞大的 cache 技术资料,和很多的应用生产环境

4.3工作中选择

要做 cache 服务的话,我们肯定是要选择专业的cache服务,优先选择squid或者varnish。

5.Tomcat和Resin有什么区别,工作中你怎么选择?

  • 区别:Tomcat 用户数多,可参考文档多,Resin用户数少,可考虑文档少

最主要区别则是 Tomcat 是标准的 java 容器,不过性能方面比 resin 的要差一些。但稳定性和 java 程序的兼容性,应该是比 resin 的要好

工作中选择:现在大公司都是用 resin,追求性能;而中小型公司都是用 Tomcat,追求稳定和程序的兼容

6.什么是中间件?什么是JDK?

6.1中间件

中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/服务器的操作系统之上,管理计算机资源和网络通讯,是连接两个独立应用程序或独立系统的软件。

相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递,通过中间件,应用程序可以工作于多平台或OS环境。

6.2JDK

JDK是Java的开发工具包
它是一种用于构建在 Java 平台上发布的应用程序、applet 和组件的开发环境

7.讲述一下Tomcat8005、8009、8080三个端口的含义?

  • 8005——关闭时使用
  • 8009——为AJP端口,即容器使用,如Apache能通过AJP协议访问Tomcat的8009端口
  • 8080——一般应用使用

8.什么叫CDN?

  • 即内容分发网络
  • 其目的是通过在现有的 Internet 中增加一层新的网络架构,将网站的内容发布到最接近用户的网络边缘,使用户可就近取得所需的内容,提高用户访问网站的速度

9.什么叫网站灰度发布?

灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。

AB test 就是一种灰度发布方式,让一部用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来,灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。

10.简述 DNS 进行域名解析的过程?

用户要访问 www.baidu.com,会先找本机的 host 文件,再找本地设置的 DNS 服务器,如果也没有的话,就去网络中找根服务器,根服务器反馈结果,说只能提供一级域名服务器.cn,就去找一级域名服务器,一级域名服务器说只能提供二级域名服务器.com.cn,就去找二级域名服务器。

二级域服务器只能提供三级域名服务器.baidu.com.cn,就去找三级域名服务器,三级域名服务器正好有这个网站www.baidu.com,然后发给请求的服务器,保存一份之后,再发给客户端。

11.RabbitMQ 是什么东西?

RabbitMQ 也就是消息队列中间件,消息中间件是在消息的传息过程中保存消息的容器,消息中间件再将消息从它的源中到它的目标中标时充当中间人的作用。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列不会保留消息,直到可以成功地传递为止,当然,消息队列保存消息也是有期限地。

12.讲述一下LVS三种模式的工作过程?

LVS 有三种负载均衡的模式,分别是 VS/NAT(nat 模式)、VS/DR(路由模式)、VS/TUN(隧道模式)

12.1NAT模式(VS-NAT)

原理:就是把客户端发来的数据包的IP头的目的地址,在负载均衡器上换成其中一台RS的IP地址

并发至此 RS 来处理,RS处理完后把数据交给负载均衡器,负载均衡器再把数据包原IP地址改为自己的IP,将目的地址改为客户端IP地址即可期间,无论是进来的流量,还是出去的流量,都必须经过负载均衡器

  • 优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统,只有负载均衡器需要一个合法的IP地址
  • 缺点:扩展性有限。当服务器节点(普通PC服务器)增长过多时,负载均衡器将成为整个系统的瓶颈

因为所有的请求包和应答包的流向都经过负载均衡器。当服务器节点过多时大量的数据包都交汇在负载均衡器那,速度就会变慢!

12.2IP隧道模式(VS-TUN)

原理:首先要知道,互联网上的大多Internet服务的请求包很短小,而应答包通常很大

那么隧道模式就是,把客户端发来的数据包,封装一个新的IP头标记(仅目的IP)发给RS,RS收到后,先把数据包的头解开,还原数据包,处理后,直接返回给客户端,不需要再经过负载均衡器。注意,由于RS需要对负载均衡器发过来的数据包进行还原,所以说必须支持IPTUNNEL协议,所以,在RS的内核中,必须编译支持IPTUNNEL这个选项

  • 优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,就能处理很巨大的请求量。这种方式,一台负载均衡器能够为很多RS进行分发。而且跑在公网上就能进行不同地域的分发。
  • 缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持”IP Tunneling”(IP Encapsulation)协议,服务器可能只局限在部分 Linux 系统上

12.3直接路由模式(VS-DR)

原理:负载均衡器和RS都使用同一个IP对外服务但只有DR对ARP请求进行响应

所有RS对本身这个IP的ARP请求保持静默也就是说,网关会把对这个服务IP的请求全部定向给DR,而DR收到数据包后根据调度算法,找出对应的RS,把目的MAC地址改为RS的MAC(因为IP一致),并将请求分发给这台RS这时RS收到这个数据包,处理完成之后,由于IP一致,可以直接将数据返给客户则等于直接从客户端收到这个数据包无异,处理后直接返回给客户端由于负载均衡器要对二层包头进行改换,所以负载均衡器和RS之间必须在一个广播域,也可以简单的理解为在同一台交换机上

  • 优点:和TUN(隧道模式)一样,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端

与VS-TUN相比,VS-DR这种实现方式不需要隧道结构,因此可以使用大多数操作系统做为物理服务器。

  • 缺点:(不能说缺点,只能说是不足)要求负载均衡器的网卡必须与物理网卡在一个物理段上。

13.MySQL 的 innodb 如何定位锁问题,MySQL 如何减少主从复制延迟?

13.1MySQL 的 innodb 如何定位锁问题

在使用 show engine innodb status检查引擎状态时,发现了死锁问题

在5.5中,information_schema 库中增加了三个关于锁的表(MEMORY引擎)

innodb_trx         # 当前运行的所有事务innodb_locks     # 当前出现的锁innodb_lock_waits  # 锁等待的对应关系

13.2MySQL 如何减少主从复制延迟

如果延迟比较大,就先确认以下几个因素:

  1. 从库硬件比主库差,导致复制延迟
  2. 主从复制单线程,如果主库写并发太大,来不及传送到从库,就会导致延迟。更高版本的mysql可以支持多线程复制
  3. 慢SQL语句过多
  4. 网络延迟
  5. master负载;主库读写压力大,导致复制延迟,架构的前端要加buffer及缓存层
  6. slave负载;一般的做法是,使用多台 slave 来分摊读请求,再从这些 slave 中取一台专用的服务器。只作为备份用,不进行其他任何操作.另外, 2个可以减少延迟的参数:–slave-net-timeout=seconds 单位为秒 默认设置为 3600秒
#参数含义:当slave从主数据库读取log数据失败后,等待多久重新建立连接并获取数据
–master-connect-retry=seconds 单位为秒 默认设置为 60秒#参数含义:当重新建立主从连接时,如果连接建立失败,间隔多久后重试
通常配置以上2个参数可以减少网络问题导致的主从数据同步延迟

13.3MySQL 数据库主从同步延迟解决方案

最简单的减少slave同步延时的方案就是在架构上做优化,尽量让主库的DDL快速执行

还有就是主库是写,对数据安全性较高,比如sync_binlog=1,innodb_flush_log_at_trx_commit= 1 之类的设置,而slave则不需要这么高的数据安全,完全可以讲sync_binlog设置为0或者关闭binlog

innodb_flushlog也可以设置为0来提高sql的执行效率。另外就是使用比主库更好的硬件设备作为slave

14.如何重置 MySQL Root 密码?

14.1在已知MYSQL数据库的ROOT用户密码的情况下,修改密码的方法

#在SHELL环境下,使用 mysqladmin 命令设置
mysqladmin –u root –p password “新密码”   回车后要求输入旧密码#在mysql>环境中,使用update命令,直接更新 MySQL 库 user 表的数据Update  mysql.user  set  password=password(‘新密码’)  where  user=’root’;flush   privileges;注意:mysql语句要以分号”;”结束#在mysql>环境中,使用 grant 命令,修改 root 用户的授权权限
grant  all  on  *.*  to   root@’localhost’  identified  by  ‘新密码’;

14.2如果忘记了mysql数据库的ROOT用户的密码,又如何做呢?

#关闭当前运行的mysqld服务程序:service  mysqld  stop(要先将mysqld添加为系统服务)#使用mysqld_safe脚本以安全模式(不加载授权表)启动mysqld 服务/usr/local/mysql/bin/mysqld_safe  --skip-grant-table  &#使用空密码的root用户登录数据库,重新设置ROOT用户的密码
mysql  -u   rootMysql> Update  mysql.user  set  password=password(‘新密码’)  where  user=’root’;Mysql> flush   privileges;

15.lvs/nginx/haproxy 优缺点

15.1Nginx

15.1.1优点

  1. 工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构,它的正则规则比HAProxy更为强大和灵活,这也是它目前广泛流行的主要原因之一,Nginx单凭这点可利用的场合就远多于LVS了。
  2. Nginx 对网络稳定性的依赖非常小,理论上能ping通就就能进行负载功能,这个也是它的优势之一,相反 LVS 对网络稳定性依赖比较大,这点本人深有体会;
  3. Nginx 安装和配置比较简单,测试起来比较方便,它基本能把错误用日志打印出来,LVS 的配置、测试就要花比较长的时间了,LVS对网络依赖比较大。
  4. 可以承担高负载压力且稳定,在硬件不差的情况下一般能支撑几万次的并发量,负载度比LVS相对小些。
  5. Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点,不过其中缺点就是不支持url来检测。比如用户正在上传一个文件,而处理该上传的节点刚好在上传过程中出现故障,Nginx会把上传切到另一台服务器重新处理,而LVS就直接断掉了。如果是上传一个很大的文件或者很重要的文件的话,用户可能会因此而不满。
  6. Nginx 不仅仅是一款优秀的负载均衡器/反向代理软件,它同时也是功能强大的Web应用服务器,LNMP也是近几年非常流行的web架构,在高流量的环境中稳定性也很好。
  7. Nginx现在作为Web反向加速缓存越来越成熟了,速度比传统的Squid服务器更快,可考虑用其作为反向代理加速器
  8. Nginx可作为中层反向代理使用,这一层面Nginx基本上无对手,唯一可以对比Nginx的就只有lighttpd了。不过lighttpd目前还没有做到Nginx完全的功能,配置也不那么清晰易读,社区资料也远远没Nginx活跃
  9. Nginx也可作为静态网页和图片服务器,这方面的性能也无对手。还有Nginx社区非常活跃,第三方模块也很多

15.1.2缺点

  1. Nginx仅能支持http、https和Email协议,这样就在适用范围上面小些,这个是它的缺点
  2. 对后端服务器的健康检查,只支持通过端口来检测,不支持通过url来检测,不支持Session的直接保持,但能通过ip_hash来解决。

15.2LVS 

LVS:使用Linux内核集群实现一个高性能、高可用的负载均衡服务器

它具有很好的可伸缩性(Scalability)、可靠性(Reliability)和可管理性(Manageability)

15.2.1优点

  1. 抗负载能力强、是工作在网络4层之上仅作分发之用,没有流量的产生,这个特点也决定了它在负载均衡软件里的性能最强的,对内存和cpu资源消耗比较低。
  2. 配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多接触,大大减少了人为出错的几率
  3. 工作稳定,因为其本身抗负载能力很强,自身有完整的双机热备方案,如LVS+Keepalived,不过我们在项目实施中用得最多的还是LVS/DR+Keepalived
  4. 无流量,LVS只分发请求,而流量并不从它本身出去,这点保证了均衡器IO的性能不会收到大流量的影响。
  5. 应用范围较广,因为LVS工作在4层,所以它几乎可对所有应用做负载均衡,包括http、数据库、在线聊天室等

15.2.2缺点

  1. 软件本身不支持正则表达式处理,不能做动静分离,而现在许多网站在这方面都有较强的需求,这个是Nginx/HAProxy+Keepalived的优势所在
  2. 如果是网站应用比较庞大的话,LVS/DR+Keepalived 实施起来就比较复杂了

特别后面有Windows Server的机器的话,如果实施及配置还有维护过程就比较复杂了

相对而言,Nginx/HAProxy+Keepalived 就简单多了。

15.3HAProxy

  • HAProxy也是支持虚拟主机的。
  • HAProxy 的优点能够补充 Nginx的 一些缺点,比如支持 Session 的保持,Cookie 的引导
    • 同时支持通过获取指定的url来检测后端服务器的状态
  • HAProxy跟LVS类似,本身就只是一款负载均衡软件
    • 单纯从效率上来讲HAProxy会比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的
  • HAProxy支持TCP协议的负载均衡转发,可以对MySQL读进行负载均衡
    • 对后端的 MySQL 节点进行检测和负载均衡,大家可以用 LVS+Keepalived 对 MySQL 主从做负载均衡
  • HAProxy负载均衡策略非常多,HAProxy的负载均衡算法现在具体有如下8种:
    • roundrobin,表示简单的轮询,这个不多说,这个是负载均衡基本都具备的;
    • static-rr,表示根据权重,建议关注;
    • leastconn,表示最少连接者先处理,建议关注;
    • source,表示根据请求源IP,这个跟Nginx的IP_hash机制类似
      • 我们用其作为解决session问题的一种方法,建议关注;
    • ri,表示根据请求的URI;
    • rl_param,表示根据请求的URl参数’balance url_param’ requires an URL parameter name;
    • hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;
    • rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求。

16.Mysql数据备份工具

16.1Mysqldump工具

mysqldump是mysql自带的备份工具,目录在bin目录下面:/usr/local/mysql/bin/mysqldump

支持基于innodb的热备份,但是由于是逻辑备份,所以速度不是很快,适合备份数据比较小的场景

Mysqldump完全备份+二进制日志可以实现基于时间点的恢复。

16.2基于LVM快照备份

在物理备份中,有基于文件系统的物理备份(LVM的快照),也可以直接用tar之类的命令对整个数据库目录进行打包备份,但是这些只能进行泠备份,不同的存储引擎备份的也不一样,myisam自动备份到表级别,而innodb不开启独立表空间的话只能备份整个数据库。

16.3tar包备份

percona提供的xtrabackup工具支持innodb的物理热备份,支持完全备份,增量备份,而且速度非常快,支持innodb存储引起的数据在不同数据库之间迁移,支持复制模式下的从机备份恢复备份恢复,为了让xtrabackup支持更多的功能扩展,可以设立独立表空间,打开 innodb_file_per_table功能,启用之后可以支持单独的表备份

17.keepalive的工作原理和如何做到健康检查

keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。

虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样就可以保证路由器的高可用了

keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式,vrrp模块是来实现VRRP协议的

#Keepalived健康检查方式配置
HTTP_GET|SSL_GET
HTTP_GET | SSL_GET
{
url {
path /# HTTP/SSL 检查的url可以是多个
digest <STRING> # HTTP/SSL 检查后的摘要信息用工具genhash生成
status_code 200# HTTP/SSL 检查返回的状态码
}
connect_port 80 # 连接端口
bindto<IPADD>
connect_timeout 3 # 连接超时时间
nb_get_retry 3 # 重连次数
delay_before_retry 2 #连接间隔时间
}

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

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

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

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

20.如何将本地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:8080

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

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

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

tcpdump -nn tcp port 80

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

23.1造成服务器故障的原因可能有以下几点

  • 服务器电源有问题(断电,电源线松动,人为原因)。
  • 服务器系统文件丢失,硬件问题,散热不良造成蓝屏和死机。
  • 服务器网络参数配置错误,物理链路原因等。

23.2如何排查服务器故障的处理步骤如下

  1. 先看服务器的电源指示灯是否亮,如果电源灯不亮,先检查并确认电源没问题时,试着按开机键是否能点亮服务器,如果不能点亮,和数据确认后先更换备用服务器以便快速恢复业务.
  2. 如果服务器电源灯亮,接上显示器和键盘,如果服务器系统有异常(比如蓝屏…)不能正常春录系统,先和数据确认,是否执行能重启服务器或是更换名用服务器,以便快速恢复业务.
  3. 如果正确输入用户名和密码情况下能登录系统,查看网卡指示灯是否正常,并用ifconfig命令查看网卡接口状态。用ping对端ip 测试网络是否连通,
  4. 如果ping不通,先和数据人员确认并检查网卡配置文件参数是否配置正确,是否正确配置网关(不正确则修正后)用“ifdown;ifup 网卡名“命令重启单个网卡,网卡接口(灯)状态正常后,再用ping命令测试,
  5. 还ping 不通,及时排查并确保本地尾纤,模块等物理设备接入正常,收发光在规定范围内,和数据人员确认是否可以重启服务器,并确认数据方面没有网络配置和数据方面的变化。
  6. 能ping通则告知数据人员,并让数据人员帮忙确认链路是否正常,有没有丢包现象等,没有丢包就OK,有丢包就继续排查尾纤,模块等,直到链路正常没有丢包,数据人员能及时的从远程登录服务器做数据配置能快速恢复业务为 OK。
  7. 如果不能接入服务器,与数据确认是否可以重启,重启后登陆正常,继续3.4.5.6步骤,如果还是不行,权衡利,有没有必要更换新的服务器上去恢复业务要紧。

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

  • 最简单有效的方法就是重装系统
  • 要查的话就是找到病毒文件然后删除

中毒之后一般机器 CPU、内存使用率会比较高,机器向外发包等异常情况,排查方法简单介绍下

top 命令找到 CPU 使用率最高的进程,一般病毒文件命名都比较乱,可以用 ps aux 找到病毒文件位置,rm -f 命令删除病毒文件,检查计划任务、开机启动项和病毒文件目录有无其他可以文件等

  • 由于即使删除病毒文件不排除有潜伏病毒,所以最好是把机器备份数据之后重装一下

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

公司的内网某台linux服务器流量莫名其妙的剧增,用 iftop 查看有连接外网的情况

针对这种情况一般重点查看 netstat 连接的外网 ip 和端口。

用 lsof -p pid 可以查看到具体是那些进程,哪些文件

经查勘发现/root下有相关的配置conf.n hhe两个可疑文件,rm -rf后不到一分钟就自动生成了

由此推断是某个母进程产生的这些文件。所以找到母进程就是找到罪魁祸首

查杀病毒最好断掉外网访问,还好是内网服务器,可以通过内网访问

断了内网,病毒就失去外联的能力,杀掉它就容易的多

怎么找到呢,找了半天也没有看到蛛丝马迹,没办法只有ps axu一个个排查

方法是查看可以的用户和和系统相似而又不是的冒牌货,果然,看到了如下进程可疑

看不到图片就是/usr/bin/.sshd

于是我杀掉所有.sshd相关的进程,然后直接删掉.sshd这个可执行文件

然后才删掉了文章开头提到的自动复活的文件

总结一下,遇到这种问题,如果不是太严重,尽量不要重装系统

一般就是先断外网,然后利用iftop,ps,netstat,chattr,lsof,pstree这些工具顺藤摸瓜

一般都能找到元凶。但是如果遇到诸如此类的问题

/boot/efi/EFI/redhat/grub.efi: Heuristics.Broken.Executable FOUND,个人觉得就要重装系统了

26.TCP/IP的七层模型

26.1应用层(Application)

网络服务与最终用户的一个接口。

协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP

26.2表示层(Presentation Layer)

数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层)

格式有,JPEG、ASCll、DECOIC、加密格式等

26.3会话层(Session Layer)

建立、管理、终止会话。(在五层模型里面已经合并到了应用层)

对应主机进程,指本地主机与远程主机正在进行的会话

26.4传输层(Transport)

定义传输数据的协议端口号,以及流控和差错校验。

协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层

26.5网络层(Network)

进行逻辑地址寻址,实现不同网络之间的路径选择。

协议有:ICMP IGMP IP(IPV4 IPV6) ARP RARP

26.6数据链路层(Link)

建立逻辑连接、进行硬件地址寻址、差错校验等功能。(由底层网络定义协议)

将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正

26.7物理层(Physical Layer)

是计算机网络OSI模型中最低的一层

物理层规定:为传输数据所需要的物理链路创建、维持、拆除

而提供具有机械的,电子的,功能的和规范的特性

简单的说,物理层确保原始的数据可在各种物理媒体上传输。局域网与广域网皆属第1、2层

物理层是OSI的第一层,它虽然处于最底层,却是整个开放系统的基础

物理层为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境

如果您想要用尽量少的词来记住这个第一层,那就是“信号和介质”。

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

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

28.请列出你了解的web服务器负载架构

  • Nginx
  • Haproxy
  • Keepalived
  • LVS

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

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

还有ulimit -n 查看linux系统打开最大的文件描述符,这里默认1024

不修改这里web服务器修改再大也没用,若要用就修改很几个办法,这里说其中一个:

修改/etc/security/limits.conf

soft nofile 10240hard nofile 10240

重启后生效

30.用tcpdump嗅探80端口的访问看看谁最高

tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}'| sort | uniq -c | sort -nr |head -20

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

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

32.已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近 7 天的访问日志!请问如何解决?请给出解决办法或配置或处理命令

32.1创建文件脚本

#!/bin/bash
for n in `seq 14`
do        date -s "11/0$n/14"
touch access_www_`(date +%F)`.log
done

32.2解决办法

# pwd/application/logs
# ll
-rw-r--r--. 1 root root 0 Jan  1 00:00 access_www_2015-01-01.log
-rw-r--r--. 1 root root 0 Jan  2 00:00 access_www_2015-01-02.log
-rw-r--r--. 1 root root 0 Jan  3 00:00 access_www_2015-01-03.log
-rw-r--r--. 1 root root 0 Jan  4 00:00 access_www_2015-01-04.log
-rw-r--r--. 1 root root 0 Jan  5 00:00 access_www_2015-01-05.log
-rw-r--r--. 1 root root 0 Jan  6 00:00 access_www_2015-01-06.log
-rw-r--r--. 1 root root 0 Jan  7 00:00 access_www_2015-01-07.log
-rw-r--r--. 1 root root 0 Jan  8 00:00 access_www_2015-01-08.log
-rw-r--r--. 1 root root 0 Jan  9 00:00 access_www_2015-01-09.log
-rw-r--r--. 1 root root 0 Jan 10 00:00 access_www_2015-01-10.log
-rw-r--r--. 1 root root 0 Jan 11 00:00 access_www_2015-01-11.log
-rw-r--r--. 1 root root 0 Jan 12 00:00 access_www_2015-01-12.log
-rw-r--r--. 1 root root 0 Jan 13 00:00 access_www_2015-01-13.log-rw-r--r--. 1 root root 0 Jan 14 00:00 access_www_2015-01-14.log
# find /application/logs/ -type f -mtime +7 -name "*.log"|xargs rm –f  ##也可以使用-exec rm -f {} \;进行删除
# ll
-rw-r--r--. 1 root root 0 Jan  7 00:00 access_www_2015-01-07.log
-rw-r--r--. 1 root root 0 Jan  8 00:00 access_www_2015-01-08.log
-rw-r--r--. 1 root root 0 Jan  9 00:00 access_www_2015-01-09.log
-rw-r--r--. 1 root root 0 Jan 10 00:00 access_www_2015-01-10.log
-rw-r--r--. 1 root root 0 Jan 11 00:00 access_www_2015-01-11.log
-rw-r--r--. 1 root root 0 Jan 12 00:00 access_www_2015-01-12.log
-rw-r--r--. 1 root root 0 Jan 13 00:00 access_www_2015-01-13.log-rw-r--r--. 1 root root 0 Jan 14 00:00 access_www_2015-01-14.log

33.如何优化 Linux系统

  • 不用root,添加普通用户,通过sudo授权管理
  • 更改默认的远程连接SSH服务端口及禁止root用户远程连接
  • 定时自动更新服务器时间
  • 配置国内yum源
  • 关闭selinux及iptables(iptables工作场景如果有外网IP一定要打开,高并发除外)
  • 调整文件描述符的数量
  • 精简开机启动服务(crond rsyslog network sshd)
  • 内核参数优化(/etc/sysctl.conf)
  • 更改字符集,支持中文,但建议还是用英文字符集,防止乱码
  • 锁定关键系统文件
  • 清空/etc/issue,去除系统及内核版本登录前的屏幕显示

34.请执行命令取出 linux 中 eth0 的 IP 地址

#cut方法
ifconfig eth0|sed -n '2p'|cut -d ":" -f2|cut -d " " -f1
#awk方法
ifconfig eth0|awk 'NR==2'|awk -F ":" '{print $2}'|awk '{print $1}'
#awk多分隔符方法
ifconfig eth0|awk 'NR==2'|awk -F "[: ]+" '{print $4}'
#sed方法
ifconfig eth0|sed -n '/inet addr/p'|sed -r 's#^.*ddr:(.*)Bc.*$#\1#g'

35.每天晚上 12 点,打包站点目录/var/www/html 备份到/data 目录下(最好每次备份按时间生成不同的备份包)

cat a.sh #/bin/bash
cd /var/www/ && /bin/tar zcf /data/html-`date +%m-%d%H`.tar.gz html/crontab –e
00 00 * * * /bin/sh /root/a.sh

相关文章:

Linux系统——面试题分享

目录 1.现在给你三百台服务器&#xff0c;你怎么对他们进行管理&#xff1f; 2.简述 raid0 raid1 raid5 三种工作模式的工作原理及特点 2.1RAID 0 ——可以是一块盘和 N 个盘组合 2.2RAID 1 ——只能2块盘&#xff0c;盘的大小可以不一样&#xff0c;以小的为准 2.3RAID 5 …...

谈恋爱没经验?那就来刷谈恋爱经验宝宝吧

❤️作者主页&#xff1a;小虚竹 ❤️作者简介&#xff1a;大家好,我是小虚竹。2022年度博客之星评选TOP 10&#x1f3c6;&#xff0c;Java领域优质创作者&#x1f3c6;&#xff0c;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;掘金年度人气作…...

element-ui输入框和多行文字输入框字体不一样解决

element-ui的type"textarea"的字体样式与其他样式不同 <el-input type"textarea"></el-input> <el-input ></el-input>设置&#xff1a; .el-textarea__inner::placeholder {font-family: "Helvetica Neue", Helvetic…...

(Java企业 / 公司项目)配置Linux网络-导入虚拟机

公司给了我一个IP地址 &#xff0c;提供了一个虚拟机或者自己搭建虚拟机&#xff0c;还有提供登录的账号密码 可以查看我之前的文章 VMware Workstation Pro 17虚拟机超级详细搭建&#xff08;含redis&#xff0c;nacos&#xff0c;docker, rabbitmq&#xff0c;sentinel&…...

java的unsafe

在Java中&#xff0c;sun.misc.Unsafe 是一个强大且危险的类&#xff0c;它提供了一些直接操作内存、对象和线程的底层功能。这个类通常不鼓励普通开发者使用&#xff0c;因为它绕过了Java语言的一些安全性和内存管理机制&#xff0c;可能会导致难以追踪的错误和安全漏洞。 Un…...

起底震网病毒的来龙去脉

2010年&#xff0c;震网病毒被发现&#xff0c;引起世界哗然&#xff0c;在后续的10年间&#xff0c;陆陆续续有更多关于该病毒的背景和细节曝光。今年&#xff0c;《以色列时报》和《荷兰日报》又披露了关于此事件的更多信息&#xff0c;基于这些信息&#xff0c;我们重新梳理…...

[杂项]优化AMD显卡对DX9游戏(天谕)的支持

目录 关键词平台说明背景RDNA 1、2、3 架构的显卡支持游戏一、 优化方法1.1 下载 二、 举个栗子&#xff08;以《天谕》为例&#xff09;2.1 下载微星 afterburner 软件 查看游戏内信息&#xff08;可跳过&#xff09;2.2 查看D3D9 帧数2.3 关闭游戏&#xff0c;替换 dll 文件2…...

服务器没有图形界面没有显示器怎么办

可以用vnc。 vnc是开元的。什么是vnc&#xff1f; 使用vnc 下载vnc和vncserver命令。 每生成一个图形界面就叫做开启session会话。 vnc相关命令&#xff1a; start a new session: vncserver。 如果没有会话&#xff0c;一般从:1开始 端口5901 vncserver :2 #指定会话为:2 端…...

标准化软件实施方案(直接套用即可)

软件实施方案 二、 项目介绍 三、 项目实施 四、 项目实施计划 五、 人员培训 六、 项目验收 七、 售后服务 八、 项目保障措施 软件开发全套资料获取&#xff1a;&#xff08;本文末个人名片也可直接获取&#xff09;软件开发全套资料_数字中台建设指南-CSDN博客 软件产品&am…...

云和恩墨海外首秀在吉隆坡召开的2024中国智能科技与文化展览会

作为中马建交50周年官方重点推荐的活动之一&#xff0c;2024中国智能科技与文化展览会&#xff08;第四届&#xff09;于5月20至21日在毗邻吉隆坡双子塔的吉隆坡国际会展中心举办。本次展览会获得马来西亚科学技术创新部、马来西亚通讯部、中国驻马来西亚大使馆和马来西亚中华总…...

什么是react

React 是一个用于构建用户界面的 JavaScript 库&#xff0c;由 Facebook&#xff08;现在的 Meta&#xff09;开发和维护。它首次发布于2013年&#xff0c;并迅速成为最受欢迎的前端库之一。React 的主要目标是提供一种高效、灵活的方式来构建用户界面&#xff0c;特别是在大型…...

EPIC免费领取《骑士精神2》 IGN9分神作骑士精神2限时免费领

EPIC免费领取《骑士精神2》 IGN9分神作骑士精神2限时免费领 最近Epic一直为玩家们送出各种游戏&#xff0c;从《龙腾世纪审判》到《模拟农场22》&#xff0c;而就在今天&#xff0c;epic又为玩家们送出了IGN评分9分高分的骑士精神2.这款游戏&#xff0c;该游戏是一款由Tripwir…...

【Linux】icmp_seq=1 Destination Host Unreachable

执行ping 命令提示&#xff1a;From 192.168.XX.XX icmp_seq1 Destination Host Unreachable 这个错误消息通常表示以下几种情况之一&#xff1a; 网络连接问题&#xff1a;目标主机可能没有连接到网络&#xff0c;或者网络中的某个路由器无法将数据包转发到目标主机。 目标主…...

java性能优化

系列文章目录 文章目录 系列文章目录前言一、Java后端服务接口性能优化建议1.Java后端服务接口性能优化建议2.如何避免大量创建对象 二、使用步骤1.引入库2.读入数据 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 一、Java后端服务接口性能优化建议 …...

Apache JMeter操作

中文-新建组配置 测试计划界面介绍 异常信息 右上角那个小三角可以看到jemter的执行信息&#xff0c;如果你的压测执行不了可以去里面看看一般是报错了 用户自定义变量 可以在这里配置压测的全局变量&#xff0c;这样我们在使用的时候就不用传具体的值&#xff0c;传变量的…...

el-table 划入划出方法

<template><div><el-table :data"tableData" style"width: 100%" cell-mouse-enter"handleMouseEnter" cell-mouse-leave"handleMouseLeave"><el-table-column prop"ddd" label"日期2" widt…...

Todesk无法登录,提示服务器断开连接。(已解决)

坐标福建&#xff0c;近一两个月todesk手机端均无法登录&#xff0c;尝试卸载重装&#xff0c;更新等&#xff0c;均无效。也没搜索到有效的解决方案&#xff0c;今天去看了商店的低星评论&#xff0c;发现是针对福建地区的服务器“维护”&#xff0c;考虑到近期复杂的国际形势…...

NDIS小端口驱动(六)

消息信号中断 (MSI) 提供了网络设备及其微型端口驱动程序可以使用的传统基于线路的中断的替代方法。 从 Windows Vista 开始&#xff0c;操作系统支持两种类型的 MSI&#xff1a;PCI V2.2 MSI 和 PCI V3.0 MSI-X。 支持 MSI-X 的微型端口驱动程序可以指定 中断相关性&#xff…...

postgresql insert on conflict 不存在则插入,存在则更新

向一张表执行插入动作&#xff0c;如果插入的字段数据已存在&#xff0c;则执行更新操作&#xff0c;不存在则进行插入操作。 1、创建一张表 CREATE TABLE "user_info" ( "id" int2 NOT NULL, "name" varchar(20) COLLATE "pg_catalog&quo…...

kafka配置消费者重要参数

文章目录 fetch.min.bytesfetch.max.wait.msfetch.max.bytesmax.poll.recordsmax.partition.fetch.bytessession.timeout.ms和heartbeat.interval.msmax.poll.interval.msrequest.timeout.msauto.offset.resetenable.auto.commitpartition.assignment.strategy区间(range)轮询(…...

uni-app学习笔记三十--request网络请求传参

request用于发起网络请求。 OBJECT 参数说明 参数名类型必填默认值说明平台差异说明urlString是开发者服务器接口地址dataObject/String/ArrayBuffer否请求的参数App 3.3.7 以下不支持 ArrayBuffer 类型headerObject否设置请求的 header&#xff0c;header 中不能设置 Refere…...

Ubuntu 系统.sh脚本一键部署内网Java服务(组件使用docker镜像,宕机自启动)

#!/bin/bash# 更新系统并安装必要的依赖 sudo apt update sudo apt install -y apt-transport-https ca-certificates curl software-properties-common# 安装 Docker curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository …...

阿里云Alibaba Cloud安装Docker与Docker compose【图文教程】

个人记录 进入控制台&#xff0c;找到定时与自动化任务 进入‘安装/卸载扩展程序’ 点击‘安装扩展程序’ 选择docker社区版&#xff0c;点击下一步与确定&#xff0c;等待一会 安装成功 查询版本 查询docker sudo docker version查询docker compose sudo docker compo…...

模块缝合-把A模块换成B模块(没写完)

把MLP Head替换为KAN 1.在model文件下新建一个python文件 2.把 模块文件里的整个KAN代码复制到新的python文件中 3.在开头导入 from model.KAN(新建文件名&#xff09; import KAN&#xff08;新建文件中的类名&#xff09; 4.sys.path.append(r"D: Icode(Kansformer"…...

我爱学算法之—— 前缀和(中)

一、724. 寻找数组的中心下标 题目解析 这道题&#xff0c;给定数组nums&#xff0c;要求我们找出这个数组的中心下标。 **中心下标&#xff1a;**指左侧所有元素的和等于右侧所有元素的和。 如果存在多个中心数组下标&#xff0c;就返回最左侧的中心数组下标。 算法思路 暴…...

Elasticsearch从安装到实战、kibana安装以及自定义IK分词器/集成整合SpringBoot详细的教程ES(三)

DSL官方地址&#xff1a; DSL查询分类 Elasticsearch提供了基于JSON的DSL&#xff08;https://www.elastic.co/docs/explore-analyze/query-filter/languages/querydsl&#xff09;来定义查询。常见的查询类型包括&#xff1a; 查询所有&#xff1a;查询出所有数据&#xff0…...

vmware 设置 dns

vmware 设置 dns 常用的 DNS&#xff08;Domain Name System&#xff09;服务器地址可以帮助你更快、更安全地解析域名。以下是一些国内外常用的公共 DNS 服务&#xff1a; 国内常用 DNS 阿里云 DNS IPv4: 223.5.5.5、223.6.6.6IPv6: 2400:3200::1、2400:3200:baba::1特点&am…...

MySql读写分离部署(一主一从,双主双从,Mycat)

参考资料: 参考视频 参考博客 视频参考资料及安装包: https://pan.baidu.com/s/1xT_WokN_xlRv0h06b6F3yg 提取码: aag3 Mysql主从复制部署指南(一主一从) NotePad++编辑Linux服务器文档 Mysql高版本(8.0及以后)Linux安装 Mysql分库分表(基于Mycat)的基本部署 …...

嵌入式面试提纲

一、TCP/IP 协议 1.1 TCP/IP 五层模型概述 链路层(Link Layer) 包括网卡驱动、以太网、Wi‑Fi、PPP 等。负责把数据帧(Frame)在相邻节点间传输。 网络层(Internet Layer) 最典型的是 IP 协议 (IPv4/IPv6)。负责 路由选路、分片与重组。 其他:ICMP(Ping、目的不可达等)…...

自动驾驶科普(百度Apollo)学习笔记

1. 写在前面 在过去的几年里&#xff0c;自动驾驶技术取得飞速发展&#xff0c;人类社会正逐渐走向一个新时代&#xff0c;这个时代中&#xff0c;汽车不仅仅是一个交通工具&#xff0c;更是一个智能的、能够感知环境、做出决策并自主导航的机器伙伴。现在正好也从事这块的工作…...