linux 运维面试题

1.删除30天前文件类名字为…log的文件

find log/ -mtime +30 -a -type f -a -name "*.log" -exec rm -f {} \;
   find log/ -mtime +30 -a -type f -a -name "*.log" | xargs rm -f
   Rm -rf $( -mtime +30 -a -type f -a -name "*.log")

2.网卡配置路径

  /etc/sysconfig/networkmask-scripts/ifcfg-ens32

3.路由器添加删除路由条目
静态路由

route add -net 192.168.28.0/24 gw 192.168.13.1
  route del -net 192.168.28.0/24 gw 192.168.13.1

默认路由

  route add default gw 192.168.13.1
  route del default gw 192.168.13.1

4.cat /etc/fstb/
这个文件里面都是什么
怎么写
挂载文件,挂载目录,类型,挂载选项(默认),是否备份,开机是否校验。
5.遇到什么类型故障,怎么处理
删除系统挂在目录,无法进入
输入root密码,修复
vi /etc/fstab 注释掉,reboot
mount -o remount,rw / :把根以读写重新挂载,之后就可以修改了
6.当前根文件系统共20G,基于LVM制作的LV 名为“/dev/mapper/centos-root”,随着
日常系统使用,剩余空间明显不足,需要扩展根文件系统。新加硬盘/dev/sdd(20G),
想要将此硬盘扩展至根文件系统,应如何操作?

1.创建PV(dev/sdd)
2.扩展原有卷组cenos
3.扩展原有逻辑卷/dev/cetos/root
4.刷新逻辑卷
具体操作:
关机加硬盘(20G)

  ls /dev/sdd
  df -hT
  pvscan
  vgdisplay cenos  (free PE /size 0)
  pvcreate /dev/sdd
  vgextend centos /dev/sdd
  vgdisplay centos
  lvextend -l +5119 /dev/centos/root
  xfs_growfs /dev/centos/root
  df -hT

7.常用RAID级别,特点
0-6,组合款1 0.

8.之前使用过服务器的内核版本
3.10
9.为什么有的命令(tar ps)可以不加“-”?
继承unix
10.top命令内容都是什么?

在这里插入图片描述

当前时间,上线时间,用户,平均负载(1min,5min,15min的平均负载,单双核)
任务总数,运行数,休眠数,停止的,僵尸进程
cpu总核数(按1显示全部核数),user、system、nice、idle、IO-wait、hi(硬中断)、si(软中断)、st(虚拟化磁盘节省)
kb单位内存,空闲,已用的,缓存
kb单位交换分区,空闲,已用,可用空间。

11.你们公司服务器以前用的什么内核文件
Vmlinuz-2.6.32-432.e16.*86_64

12.centos 6开机默认运行级别配置
在这里插入图片描述
在这里插入图片描述

Cat /etc/redhat-release
CentOS release 6.5 (Finanl)     #是6.5版本
Vim /etc/inittab
  

/etc/systemctl

在这里插入图片描述

修改字符图形界面切换开机

在这里插入图片描述

13.系统级别安全加固
在这里插入图片描述

14.block还有但是写不进去内容什么原因?
i节点耗尽,磁盘配额原因
15.添加删除路由条目。
(1)临时:
1)静态
加: route add -net 网段/短格式掩码 gw 网关
减: route del -net 网段/短格式掩码 gw 网关
2)默认
加:route add default gw 网关
减:route del default gw 网关
(2)永久
1)CentOS6:vi /etc/rc.local (开机后自动引导文件)
CentOS7:vi /etc/rc.local 或 vim /etc/rc.d/rc.local
2)默认路由可以添加到 /etc/sysconfig/network-scripts/ifcfg-ens32
3)Vi /etc/sysconfig/static-routers (静态)
例:any net 192.168.200.0/24 gw 192.168.250.254
16.DNS解析查询方式
1).递归查询 2).迭代查询
17.ssh服务绝对路径
/etc/ssh/sshd

18.你曾面对公司最棘手的问题
有客户反馈无法访问网站的问题
网站出现了5XX错误的解决方案
网站突然变得很慢的解决方案
cpu飚高的处理案例
数据库强制关闭后导致故障的排查案例
做活动时,CDN带宽突然增加很多的排查案例
IDC机房流量暴涨的解决案例
公司老网站迁移的故障案例分析
一主多从,主服务器宕机的解决案例
数据库服务器CPU周期性飚高的解决案例
网站遭受木马攻击,导致网站目录下所有的文件被篡改
fstab修改错误导致系统无法启动的修复案例
Linux服务器被入侵后,如何抓虫
Linux服务器中木马,如何清除和扫描
服务器被植入挖矿木马之后,cpu飚高的处理办法
9台nosql数据库同事宕机的解决方案
大并发慢查询导致cpu耗尽的处理方案
计划任务造成宕机的解决案例
inode满导致磁盘无法写入的案例
云服务器远程连接速度慢的案例
服务器磁盘因断电损坏的解决案例
mysql innodb异常修复案例
已删除数据但磁盘不释放空间的问题分析案例
Linux Argumet list too long错误解决案例
zabbix-server被入侵的解决案例
zabbix漏洞引起的攻击导致内存爆满,服务器宕机案例
redis漏洞加固方案
服务器挖矿病毒排查案例

19.笔试易考,预定义变量
在这里插入图片描述

20.四表五链
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

21.char 和vacgar区别

在这里插入图片描述

22.tomcat服务器故障
故障1:
故障现象: WEB无法访问、SSH无法登陆、桌面登陆验证失败。重启服务器后可以正常登陆。
故障信息:通过查看系统日志发现cat /var/log/message显示root用户创建了2000多个sessions后显示内存不足。进入tomcat安装目录(/usr/local/tomcat7/logs/)查看日志localhosts_time.log(当天日志)。发现如下错误:java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:714)
故障判定: 由于tomcat创建的过多sessions,导致系统内存不足。产生如上问题。
解决方法:在catalina.sh文件中将JVM虚拟机内存调大
JAVA_OPTS=“-server -Xms4096m -Xmx4096m -XX:PermSize=128M
-XX:MaxPermSize=256m -XX:NewSize=256m -XX:MaxNewSize=512m” (tomcat7与tomcat8中对于非堆内存的调整变量名有所不同)

故障2
故障现象:Tomcat访问报500错误,无法对外提供服务。多个Tomcat服务异常。
故障排查:查看系统资源,内存有小量上涨,CPU、带宽等负载显著下降,TCP连接数处于ESTABLISHED状态的数据没有显明变化,但非ESTABLISHED状态的数量大量减少。第一时间先上重启服务大法。重启后能短暂提供服务,但是马上又回到卡死状态。使用jstack看到有很多进程卡在网络访问。同时有应用日志报某个服务地址访问失败。想起之前为了优化小概率无法解析域名的错误,而把域名IP写到hosts文件中。
故障判定: 因某个第三方服务器域名对应的IP地址变化,导致hosts中写的IP地址错误,响应超时时间过长,导致Tomcat的线程被大量占用,无法接受新请求。进一步导致其它Tomcat因为该Tomcat的问题无法响应而同样线程占满,无法响应新请求,造成服务器雪崩问题。所以多次重启均无效,后修改为正确IP地址后恢复正常。
解决方案:
1.增加脚本高频(1分钟1次或可更慢)的定时来判断IP是否有变化并刷新hosts文件;
2.修改tomcat使得有更大的线程数;
3.缩短请求第三方的超时时间,按具体情况10秒左右;
4.把这部分可能阻塞的请求,若不影响业务,改用消息队列异步处理,减少线程占用;
5.增加熔断机制,异常时避免雪崩

23.软硬连接区别
硬链接与软连接的区别
1.删除源文件,硬链接没有影响,软连接不可用
2.软连接可以跨文件系统,硬链接不可以
3.硬链接inode号相同,软连接不同
目录不可以做硬链接,可以做软连接

24.CentOS6和7区别

在这里插入图片描述

25.进程状态除了S和R还有什么?
R:(task_running)可执行状态
S:(task_interruptible)可中断的睡眠状态
D:(task_ununinterruptable)不可中断的睡眠状态
T:(task_stopped or task_traced)暂停状态或跟踪状态
Z:(task_dead-exit_zombie)退出状态,进程变成僵尸进程
X:(task_dead-exit_dead)退出状态,进程即将销毁

26.什么是进程什么是线程,并发和并行
进程:资源分配的基本单位,有独立的空间
线程:CPU独立运行和独立调度的基本单位
并发:可以处理多个同时发生的事情
并行:可以同时处理多个事情

27.常见的RAID级别有哪些?
RAID 0 条带模式 提高读写速度,数据没有冗余
RAID 1 镜像模式 数据安全性高,磁盘使用率低,只能使用偶数块盘
RAID 5 分布式奇偶校验 允许有一块硬盘损坏,写速度降低,最少使用三块硬盘

28.如果某一天你误执行rm -rf*,会有哪些情况发生
电脑中的没有权限的文件都会删除,系统命令被删除无法使用,grub.conf被删除,系统开机无法引导,整个系统难以正常运转

29.Linux常见系统发行版本有哪些?
RedHat,Centos,suse,ubuntu,fedora

30.FTP主被动模式原理
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。

ansible与SaltStack对比:

相同点:
1.都是使用python语言开发的
2.都具有二次开发的特性
3.执行命令都支持Ad-hoc模式 (临时命令,执行完就返回)
4.都可以通过YAML格式文件批量执行
5.返回的结果都是JSON数据,便于后续处理

不同点:
1.Ansible部署更简单,没有客户端,而Saltstack有客户端;
2.Saltstack的响应速度要比Ansible更快;Ansible通过SSH协议实现,Saltstack使用了ZeroMQ实现通信;
3.Ansible更加安全,SSH加密传输
4.Saltstack对于Windows支持更友好,Ansible通过Power Shell来管理Windows
5.Ansible维护简单,没有客户端,没有守护进程;saltstack需要有Master和minion,主机要启动一个守护进程。

32.pxe装机流程

DHCP获取ip,获取tftp服务器地址
Tftp服务器>>>initrd.img pxelinux.0 pxelinux.cfg/defultS>>>ftp地址 ks.cfg 文件地址
ftp提供的镜像,获取到镜像文件,然后按照ks.cfg 内容进行安装

1)准备Centos6安装源,放在/var/ftp/centos6下
2)安装tftp服务,启用,修改tftp配置
3)准备linux内核,初始化镜像
4)准备pxe引导程序,启动菜单文件
5)安装启用dhcp服务
6)新建虚拟机,设置网络引导并进行验证
7)实现kikstart无人值守安装
8)Pxe与kikstart配合使用实现批量装机

33.Redis数据类型
redis中的值可以有string,hash,list,set,zset,geo等多种数据结构和算法组成.

34.Redis是单线程还是多线程,为什么是这样的?Redis6增加多线程为什么?
1.Redis在处理客户端的请求时,包括获取(socket读)、解析、执行、内容返回(socket写)等都由一个顺序
行的主线程处理,这就是所谓的“单线程”。但如果严格来讲从Redis4.0之后并不是单线程,除了主线程外,也有后台线程在处理一些较为缓慢的操作,例如清理脏数据、无用连接的释放、大key的删除等等。
2.官方回应:使用Redis时,几乎不存在CPU成为瓶颈的情况,Redis主要受限于内存和网络。例如在一个普通的Linux系统上,Redis通过使用pipelining每秒可以处理100万个请求,所以如果应用程序主要使用O(N)或O(log(N))的命令,它几乎不会占用太多CPU。
使用了单线程后,可维护性高。多线程模型虽然在某些方面表现优异,但是它却引入了程序执行顺序的不确定性,带来了并发读写的一系列问题,增加了系统复杂度、同时可能存在线程切换、甚至加锁解锁、死锁造成的性能损耗。Redis通过AE事件模型以及IO多路复用等技术,处理性能非常高,因此没有必要使用多线程。单线程机制使得Redis内部实现的复杂度大大降低,Hash的惰性Rehash、Lpush等等“线程不安全”的命令都可以无锁进行。
3
•可以充分利用服务器CPU资源,目前主线程只能利用一个核
•多线程任务可以分摊Redis同步IO读写负荷

猜你喜欢

转载自blog.csdn.net/qq_39109226/article/details/111193901