中级运维工程师面试题汇总(含答案)

一、linux

1. linux系统启动流程

  • 第一步:开机自检,加载BIOS
  • 第二步:读取MBR
  • 第三步:Boot Loader grub引导菜单
  • 第四步:加载kernel内核
  • 第五步:init进程依据inittab文件夹来设定运行级别
  • 第六步:init进程执行rc.sysinit
  • 第七步:启动内核模块
  • 第八步:执行不同运行级别的脚本程序
  • 第九步:执行/etc/rc.d/rc.lo

2. linux文件类型

文件属性 文件类型
- 常规文件,即file
d 目录文件
b block device 即块设备文件,如硬盘;支持以block为单位进行随机访问
c character device 即字符设备文件,如键盘支持以character为单位进行线性访问
l symbolic link 即符号链接文件,又称软链接文件
p pipe 即命名管道文件
s socket 即套接字文件,用于实现两个进程进行通信

3. centos6和7怎么将源码安装的程序添加到开机自启动?

  • 通用方法:编辑/etc/rc.d/rc.local文件,在文件末尾添加启动服务命令
  • centos6:①进入到/etc/rc.d/init.d目录下,②新建一个服务启动脚本,脚本中指定chkconfig参数,③添加执行权限,④执行chkconfig --add 添加服务自启动
  • centos7:①进入到/usr/lib/systemd/system目录下,②新建自定义服务文件,文件中包含[Unit] [Service] [Install]相关配置,然后添加下执行权限,③执行systemctl enable 服务名称

4. 简述lvm,如何给使用lvm的/分区扩容?

  • 功能:可以对磁盘进行动态管理。动态按需调整大小
  • 概念:

①PV - 物理卷:物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是raid设备。
②VG - 卷组:卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。
③LV - 逻辑卷:逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。

  • 给/分区扩容步骤:

①添加磁盘
②使用fdisk命令对新增加的磁盘进行分区
③分区完成后修改分区类型为lvm
④使用pvcreate创建物理卷
⑤使用vgextend命令将新增加的分区加入到根目录分区中
⑥使用lvextend命令进行扩容
⑦使用xfs_growfs调整卷分区大小

5. 为何du和df统计结果不一致?

  • 用户删除了大量的文件被删除后,在文件系统目录中已经不可见了,所以du就不会再统计它。
  • 然而如果此时还有运行的进程持有这个已经被删除的文件句柄,那么这个文件就不会真正在磁盘中被删除,分区超级块中的信息也就不会更改,df仍会统计这个被删除的文件。
  • 可通过 lsof命令查询处于deleted状态的文件,被删除的文件在系统中被标记为deleted。如果系统有大量deleted状态的文件,会导致du和df统计结果不一致。

6. 如何升级内核?

  • 方法一
# 添加第三方yum源进行下载安装。
Centos 6 YUM源:http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
Centos 7 YUM源:http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
# 先导入elrepo的key,然后安装elrepo的yum源:
rpm -import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
# 查看可用的内核相关包
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available 
yum -y --enablerepo=elrepo-kernel install

1
2
3
4
5
6
7
8
9

  • 方法二
# 通过下载kernel image的rpm包进行安装。
官方 Centos 6: http://elrepo.org/linux/kernel/el6/x86_64/RPMS/
官方 Centos 7: http://elrepo.org/linux/kernel/el7/x86_64/RPMS/
# 获取下载链接进行下载安装即可
wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-lt-4.4.185-1.el7.elrepo.x86_64.rpm
rpm -ivh kernel-lt-4.4.185-1.el7.elrepo.x86_64.rp
# 查看默认启动顺序
[root@localhost ~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (5.2.2-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (4.4.182-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.21.3.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.10.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-e34fb4f1527b4f2d9fc75b77c016b6e7) 7 (Core)
由上面可以看出新内核(4.12.4)目前位置在0,原来的内核(3.10.0)目前位置在1
# 设置默认启动
[root@localhost ~]# grub2-set-default 0  // 0代表当前第一行,也就是4.12.4版本
# 重启验证

7. nginx日志访问量前十的ip怎么统计?

awk '{array[$1]++}END{for (ip in array)print ip,array[ip]}' access.log |sort -k2 -rn|head

8. 如何删除/var/log/下.log结尾的30天前的日志?

find /var/log/ -type f -name .*.log -mtime 30|xargs rm -f

9. ansible有哪些模块?功能是什么?

模块 功能
copy 拷贝文件到被控端
cron 定时任务
fetch 拷贝被控端文件到本地
file 文件模块
group 用户组模块
user 用户模块
hostname 主机名模块
script 脚本模块
service 服务启动模块
command 远程执行命令模块
shell 远程执行命令模块,command高级用法
yum 安装包组模块
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值