面试先笔试, Linux 考了一个 nginx 的 log 中 ip 出现最多的 10 个 ip 是什么。。。

2017-04-06 17:06:33 +08:00
 1069401249

真的不会啊,难道你们用 linux 都这么溜吗。

7210 次点击
所在节点    问与答
63 条回复
ihuotui
2017-04-06 19:24:50 +08:00
@wc951 哈哈,或者面试官就是这样的。
dongxiaozhuo
2017-04-06 19:28:02 +08:00
@1069401249 后端开发,直接上 py 脚本岂不美哉。非要用 shell 的面试,不去也罢。
fsgmhoward
2017-04-06 19:29:08 +08:00
这个要考正则的吧
Suddoo
2017-04-06 19:35:38 +08:00
@wc951 对啊,现在已经不是刀耕火种的年代了啊。
mringg
2017-04-06 19:41:14 +08:00
数据量小我能直接写,如果数据量大我宁愿拖到 hdfs 再说
echo1937
2017-04-06 19:43:25 +08:00
老派 Linux 运维必考内容,他如果没有限定工具的话,写个 py 的实现我觉得也可以给分。
takeoffyoung
2017-04-06 19:43:30 +08:00
如果考操作的话,上面说了那么多。
如果考算法的话,什么分治合并的模糊算法,什么 hash+heap sort
都是可以搜到答案的
xavierskip
2017-04-06 20:48:01 +08:00
如果不是考 shell ,用别的编程语言实现也没什么难度吧。
ryd994
2017-04-06 20:48:34 +08:00
@dremy
@ProjectAmber
第二个 sort 该 sort -n 吧
jy01264313
2017-04-06 21:02:55 +08:00
很全面的一道题目
q397064399
2017-04-06 22:53:56 +08:00
如果是后端, Python 明显比 shell 有优势,脚本
yuedingwangji
2017-04-07 01:10:34 +08:00
这太简单了吧 , sort -n | uniq -c | sort -n 或者 awk 然后在 sort -n
DravenJohnson
2017-04-07 02:05:39 +08:00
为什么都在 sort ,难道这题不是问 IP 地址的么?
flowfire
2017-04-07 07:52:41 +08:00
@DravenJohnson 23333 我也想知道到底问的是如何获取访问最多的 10 个 ip 还是问的是 10 个 ip 具体是啥
sunsol
2017-04-07 09:03:27 +08:00
@flowfire 我也一样,第一反应是 127.0.0.1 ,然后在想其它 9 个是什么
ichou
2017-04-07 09:24:39 +08:00
@q397064399 然而很多机器上并没有 python
sunsol
2017-04-07 09:36:00 +08:00
@ichou linux 上没 python 的还真少见
yaxin
2017-04-07 09:39:44 +08:00
awk '{print $1}' /path/to/nginx | sort | uniq -c | sort -r -n -k 1 | head -10
用多了就熟练了
blacklee
2017-04-07 09:52:13 +08:00
楼上 yaxin 的应该是正确答案,里面后一个 sort 我不看文档也不懂。
awk + sed 就能出一本 500+页的书,但是这个问题所需要的 awk 很基础。
另外就是多会一些 linux 的基础命令,会对你的实际工作产生相当不错的效率提升。
Hozzz
2017-04-07 10:16:18 +08:00
@sunsol 核心主机上没 python 不要太正常,装的东西越少越好越稳定

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/352985

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX