2021-02-26 22:15:38
百度Linux运维开发工程师面试真题及经历概述
以下是根据网络收集整理的百度Linux运维开发工程师面试真题及面试者个人经历分享,内容涵盖面试要求、技术试题及部分面试心得。
一、百度对Linux运维人员的要求
Apache虚拟主机设定需掌握Apache配置文件中虚拟主机(VirtualHost)的配置方法,包括监听端口、域名绑定、文档根目录等参数设置。
Apache日志文件重命名后的日志写入问题问题:若Apache运行时执行mv access_log access_log.bak,新日志会写入哪里?答案:日志仍会写入access_log.bak。因Apache进程通过文件描述符(fd)关联inode,而非文件名,改名不影响已打开文件的写入。重启服务后会重新检查文件名并创建新文件。
查看远激空程Linux系统运行时间
uptime | awk '{print $3}'或通过/proc/uptime文件获取秒数后明携瞎转换。
统计域名出现次数并排序输入示例:
解决方案:
# 方法1:sed提取域名 + uniq统计cat file | sed -e 's/生成随机字符串并倒序显示要求:基于字符集0123456789生成6位随机字符串(如642031),并倒序输出(如130246)。解决方案(awk实现):
awk -v count=6 'BEGIN { srand(); str="0123456789"; len=length(str); for(i=count;i>0;i--) marry[i]=substr(str,int(rand()*len),1); for(i=count;i>0;i--) printf("%c",marry[i]); printf("n"); for(i=1;i<=count;i++) printf("%c",marry[i]); printf("n");}'查看CPU、内存、负载等状态
/proc目录关键文件:
cpuinfo:CPU信息。
meminfo:内存信息。
loadavg:系统负载。
常用命令:
top # 动态显示进程及资源占用free -m # 内存使用情况(MB单位)ps aux # 进程详细状态dmesg # 系统日志(排查硬件或内核问题)查看进程使用的文件隐答句柄数
ls /proc/<PID>/fd/ | wc -l合并奇数行与偶数行
# 合并所有奇数行与偶数行(删除换行符)sed '$!N;s/n/ /g' test# 仅合并第2行与第3行sed -n -e '2p' -e '3p' test | sed '$!N;s/n/ /g'read命令超时退出
read -t 2 # 2秒后自动退出自动FTP上传
#!/bin/shftp -n <<END_FTPopen 192.168.1.4user codfei duibuqibinaryprompt offmput testclosebyeEND_FTP自动SSH跳转(A→B→C)
#!/usr/bin/expect -fset timeout 30spawn ssh codfei@Bexpect "password:"send "ppppppr"expect "]*"send "ssh codfei@Cr"expect "password:"send "ppppppr"interactsed、awk、grep对比
grep:文本搜索(支持基础正则)。
sed:流编辑器(适合替换、删除等操作)。
awk:功能最强大,支持列处理、循环、条件判断等,适合复杂文本分析。
grep -E与grep -P
-E:启用扩展正则表达式(ERE)。
-P:启用Perl兼容正则表达式(PCRE),支持更复杂的语法(如d、s)。
技术准备:
重点复习Linux系统管理、网络配置、Shell脚本编程(如awk、sed)、服务监控(如top、free)等核心知识。
熟悉常见服务的配置(如Apache、Nginx、DNS、Samba等)。
实战能力:
通过实际场景练习(如日志分析、自动化脚本编写)提升动手能力。
理解工具背后的原理(如/proc文件系统、文件描述符)。
软技能:
清晰表达技术思路,遇到难题时可说明排查步骤(如“先检查进程状态,再分析日志”)。
展现对运维工作的理解(如稳定性、自动化、安全性)。
总结:百度Linux运维面试注重基础扎实度、脚本编程能力及系统原理理解,同时考察解决实际问题的思维逻辑。建议结合真题针对性复习,并多实践操作以巩固知识。