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

一、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

  • 方法二
# 通过下载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 服务启动模块
### 初中级运维工程师常见面试问题及答案 #### 1. Linux 基础命令操作 对于初中级运维工程师而言,掌握基本的 Linux 操作系统命令至关重要。常见的面试题可能涉及文件管理、权限设置等方面。 - **问题**: 如何查看当前目录下的所有隐藏文件? 使用 `ls` 命令加上 `-a` 参数可以显示包括隐藏在内的全部文件列表[^4]。 ```bash ls -a ``` - **问题**: 怎样更改某个文件夹及其子文件夹内所有文件的所有者? 可通过 `chown` 加上递归选项来实现这一需求。 ```bash chown -R newowner:newgroup /path/to/directory/ ``` #### 2. Shell 脚本编写技巧 Shell 编程能力也是衡量一名合格运维人员的重要标准之一。能够熟练运用脚本来自动化日常任务是必不可少的技能。 - **问题**: 创建一个简单的 shell script 来监控磁盘空间并发送警告邮件给管理员当剩余空间低于设定阈值时。 下面是一个简单例子,假设我们希望在根分区可用空间少于 10% 的时候触发警报: ```bash #!/bin/bash THRESHOLD=10 ROOT_USAGE=$(df | grep '/$' | awk '{print $5}' | cut -d '%' -f 1) if [ "$ROOT_USAGE" -gt "$THRESHOLD" ]; then echo "Warning: Root partition usage is at ${ROOT_USAGE}%" | mail -s 'Disk Space Alert' [email protected] fi ``` #### 3. 网络配置与诊断工具的应用 网络连接性和性能优化同样是运维工作中经常遇到的任务领域。了解如何排查网络故障以及调整参数以提高效率非常重要。 - **问题**: 如果服务器无法访问外部网站,应该采取哪些初步措施来进行故障排除? 应该先检查本地 DNS 解析是否正常工作;接着尝试 ping 测试目标 IP 地址确认连通性;最后利用 traceroute 或 mtr 工具分析路径上的潜在瓶颈位置。 #### 4. 数据库管理和备份策略 数据库作为企业应用的核心组件之一,其稳定运行直接关系到业务连续性。因此,制定合理的维护计划和应急恢复方案显得尤为重要。 - **问题**: MySQL 数据库定期自动备份的最佳实践是什么样的? 推荐做法是在低峰时段执行全量逻辑导出(`mysqldump`)并将结果压缩存档至远程存储介质中保存多份副本以防止单点失效风险。 ```bash mysqldump --all-databases --single-transaction | gzip > /backup/mysql/$(date +%F).sql.gz ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值