【就业福利-252期】百度linux运维开发工程师面试真题经历+试题

看大企业的面试题,是非常重要的一件事,这样你能看到大神运维的一个情况,今天小编收集的第二个是百度,这个企业有非常多的人想进去,但是不容易进去,以下为百度面试题实录,内容从网络收集整理的,仅供大家学习参考,下面是面试者个人面试心得实录:

首先我们公布一下目前百度对Linux运维人员的要求:

【就业福利-252期】百度linux运维开发工程师面试真题经历+试题

百度面了好久了,两个月了,估计都快成馊面了,一跟面条在走边边一不小心掉进了大海,于是就有了汤面^_^经历非技术总结就两句话,幸运的是在朋友的帮助下顺利通过笔试,还认识了一帮super牛B的人,不幸的是最终还是由于主观客观擦肩而过~~

我投的是Linux运维,那个时候sed,awk根本不会(不会这两个就知道我脚本水平),就知道一些basic command! samba,dns,svn也是半解,telnet,vnc还好点.再次鄙视下自己.还好暑假狂补了补.废话了那么多,进正题吧~~,估计没人愿意听我在这里家常!

上面的各种服务,blog里都有^_^,下面的题目汇总了我自己的和一些朋友的^_^

1.基础常见内容

a.apache虚拟主机设定

这个我以前的日志已写了,这里就不say了~~~其实也easy现在觉得

b.假设Apache产生的日志文件名为access_log,在apache正在运行时,执行命令mv access_log access_log.bak,执行完后,请问新的apache的日志会打印到哪里?
新的日志会在access_log.bak中,因为apache启动时会找access_log文件,随时准备向文件中加入日志信息,虽然此时文件被改名,但是由于服务正在运行,因为它的inode节点的位置没有变,程序打开的fd仍然会指向原来那个inode
不会因为文件名的改变而改变.apache会继续向已改名的文件中追加日志,但是若重启apache服务,系统会检查access_log文件是否存在,若不存在则创建.

2.在Shell环境下,如何查看远程Linux系统运行了多少时间?

uptime | awk '{print $3}'

3.处理以下文件内容,将域名取出并进行计数排序,如处理: http://www.baidu.com/more/

http://www.baidu.com/guding/more.html

http://www.baidu.com/events/20060105/photomore.html

http://hi.baidu.com/browse/

http://www.sina.com.cn/head/www20021123am.shtml

http://www.sina.com.cn/head/www20041223am.shtml
得到如下结果:
域名的出现的次数 域名
www.baidu.com
www.sina.com.cn
hi.baidu.co 百度总喜欢这种题目,我上篇日志的site inurl也是,这个是统计域名的,还有一个说是统计文件名的,就是后面的index没有的就直接为空,这个用shell怎么实现还在思考中,想出来了再写

cat file | sed -e ' s/http:\/\///' -e ' s/\/.*//' |  uniq -c | sort -rn
awk -F/ '{print $3}' file |uniq -c | sort -r |awk '{print $1"\t",$2}'

4.如果得到随机的字串,长度和字串中出现的字符表可定义,并将字串倒序显示,如
把0123456789作为基准的字串字符表,产生一个6位的字串642031,打印出的字串为 130246,可使用bash/perl/php/c任意一种.

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=0;i<=count;i++) printf(“%c”,marry[i]);printf(“\n”)}’

5.如何查看当前Linux系统的状态,如CPU使用,内存使用,负载情况等.

当时问到这个的时候我超级自信,可是你知道/proc目录下的那些数字目录代表什么吗??教训阿!!!(ps:不懂的自己google^_^)个人的小教训

Linux系统中/proc是个伪文件目录,不占用系统空间,及时的反应出内存现在使用的进程情况.其中许多文件都保存系统运行状态和相关信息对于/proc中文件可使用文件查看命令浏览其内容,文件中包含系统特定信息:
cpuinfo 主机CPU信息
filesystems 文件系统信息
meninfo 主机内存信息
version Linux内存版本信息
diskstatus 磁盘负载情况
另外top命令可以动态的显示当前系统进程用户的使用情况,而且是动态的显示出来,尤其是在该命令显示出来的对上方对系统的情况进行汇总.
free命令呢可以查看真实使用的内存 一般用free -m
使用ps aux 可以查看详细的每个进程的使用状况
dmesg 也是常用来查看系统性能的命令

告诉我那些是进程后又问如何查看一个进程所使用的文件句柄?

/proc/进程号/fd/的个数就行了

6.查看apache进程数

个人在ubuntu下测试成功的是

ps aux | grep “apache2” | grep -v “apache2” | wc -l

个别的command,与OS有关!!!

下面的是别人滴^_^
##########################

1、/proc/sys 子目录的作用

该子目录的作用是报告各种不同的内核参数,并让您能交互地更改其中的某些。与 /proc 中所有其他文件不同,该目录中的某些文件可以写入,不过这仅针对 root,这个google下多的是 oh no,please baidu,baidu更懂中文~~

2、将一个文本的奇数行和偶数行合并,第2行和第3行合并

a.将所有奇数行和偶数行合并,就是去奇数行的换行符了哦

sed ‘$!N;s/\n/ /g’ test
b.就是去第二行的了哦

sed -n -e 2p -e 3p test | sed ‘$!N;s/\n/ /g’ test

3、read 命令2秒后自动退出

read -t 2

4.下面的这两个我没有DIY过,没环境阿,就自己一台笔记本

自动ftp上传
#!/bin/sh
ftp -n<<END_FTP
open 192.168.1.4
user codfei duibuqi //用户名codfei 密码duibuqi
binary
prompt off //关闭提示
mput test //上传test
close
bye
END_FTP
自动ssh登陆 从A到B然后再到c
#!/usr/bin/expect -f
set timeout 30
spawn ssh codfei@B
expect “password:”
send “pppppp\r”
expect “]*”
send “ssh codfei@C\r
expect “password:”
send “pppppp\r”
interact

5、sed awk grep哪个最好

我答的是 哪个掌握的精通,都很好,但是还是问我哪个最好,我只能说awk了,对于行操作和列操作都可以操作的很好。

8、grep -E -P 是什么意思

我说的是-E, –extended-regexp 采用规则表示式去解释样式。 -P perl的

9、还问了我对运维这个工作的理解,和应该具备的素质。
…………

内容提供为公众号:马哥Linux运维 的用户投稿

——————————

为了方便大家交流学习,我们特地组建了Linux运维学习的交流群,方便大家交流学习,目前已经有300个小伙伴在里面学习了,QQ群号码:576095618

相关新闻

历经多年发展,已成为国内好评如潮的Linux云计算运维、SRE、Devops、网络安全、云原生、Go、Python开发专业人才培训机构!