百度和sohu Shell面试题

2014-11-10 13:30:05 · 作者: · 浏览: 33

1. 如何查看apache进程数


分两个情况


perfork模式:


ps -ef|grep http|grep -v grep|wc -l


worker模式


pstree -a|grep httpd|wc -l


前者进程模式 后者线程模式 故查看方法也有区别


说明:如果学生答题时,能一分为二的解答 会比一个答案好很多的。每次我考学生时经常得到的答案:ps -ef|grep http|wc -l 这也不能说你错,但是显然没有我给出的更吸引面试官的眼球。


2. 处理以下文件内容,将域名取出并进行计数排序,如处理


oldboy.log


http://www.etiantian.org/index.html


http://www.etiantian.org/1.html


http://post.etiantian.org/index.html


http://mp3.etiantian.org/index.html


http://www.etiantian.org/3.html


http://post.etiantian.org/2.html


分析:此类问题是运维工作中最常见的问题。可以演变成分析日志,查看TCP各个状态连接数,查看单IP连接数排名等等


第一类 过滤域名方法


方法很多 这里给出六种 为例。还可以写出几种 留给大家了。哈哈


法一:


[root@oldboy ~]# cut -d “/” -f 3 oldboy.log |sort|uniq -c


1 mp3.etiantian.org


2 post.etiantian.org


3 www.etiantian.org


法二:


[root@oldboy ~]# awk -F “/” ‘{print $3}’ oldboy.log |sort|uniq -c


1 mp3.etiantian.org


2 post.etiantian.org


3 www.etiantian.org


法三:


[root@oldboy ~]# sed ‘s/^ htt.*\/\///g’ oldboy.log |sed ‘s/\/.*html$//g’|sort|uniq -c


1 mp3.etiantian.org


2 post.etiantian.org


3 www.etiantian.org


法四:


[root@oldboy ~]# cat oldboy.log |tr “\/” “\n”|grep etiantian|sort|uniq -c


1 mp3.etiantian.org


2 post.etiantian.org


3 www.etiantian.org


第二类:


法五:


[root@oldboy ~]# cut -d “/” -f 3 test.log|awk ‘{++S[$1]} END {for(key in S) print key,S[key]}’|sort -k2


mp3.etiantian.org 1


post.etiantian.org 2


www.etiantian.org 3



法六:


一个利用AWK数组综合解决方法


[root@oldboy ~]# awk -F “/” ‘{++S[$3]} END {for(key in S) print key,S[key]}’ oldboy.log|sort -k2


mp3.etiantian.org 1


post.etiantian.org 2


www.etiantian.org 3


以上答案 不同组合 已可以达到10多种答案