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

真的不会啊,难道你们用 linux 都这么溜吗。
1 jackon Apr 6, 2017 via iPhone 搜索引擎的爬虫 IP? |
2 jonah Apr 6, 2017 主要是考察一些常用的 shell 文本处理命令,比如 awk 、 sed 、 sort 、 uniq 之类的,可以搞定 |
3 xiaopc Apr 6, 2017 via Android cat grep wc? |
4 noelyang Apr 6, 2017 正则匹配 ip 地址,然后分别计数,最后取计数最多的 ip 难度不高吧 |
5 1069401249 OP @noelyang 思路都知道,但是 linux 命令没用到这么深。。。 |
6 ProjectAmber Apr 6, 2017 grep | awk | sort | uniq -c | sort | head -n 10 |
7 Hozzz Apr 6, 2017 awk |
8 est Apr 6, 2017 cat nginx.log | 实习生 |
9 conoha Apr 6, 2017 ...熟悉应该还好?用脚本就是 2L, 如果是程序,那就是过滤每条日志获取 ip , ip2long, 然后就转变成最多的 K 个数了 |
10 imganquan Apr 6, 2017 这是 Linux 基础技能吧。 这都不会还应聘毛的 Linux 技术岗。。。。 |
11 ProjectAmber Apr 6, 2017 上面写错了, sort -> sort -n 。 不让看手册的话我写不出来, awk 用的不是太熟。 |
12 dremy Apr 6, 2017 cat access.log | awk '{print $1}' | sort | uniq -c | sort -r | head -n 10 拿走不谢 |
13 banditsmile Apr 6, 2017 cat file_name|awk "{$a[$1]++}END{for (x in $a){print $a[$x],$x}}|sort -k2|head -n 10 " 伪代码,不能运行,不要尝试 另外用 grep 和 unique 的都是忽悠 |
14 1069401249 OP @imganquan 应聘的后端开发,,按道理说是应该熟悉常用的 linux 命令,只是这题对我来说有点深,所以发出来大家讨论下 |
15 mcfog Apr 6, 2017 有 google 会 awk '{a[$1]++} END { for (i in a) {print i, a[i]} }' access.log | sort -rnk2 | head -10 没有的话算了还是面别家吧…… |
16 param Apr 6, 2017 via Android sort | unic -c | sort -n |
17 relaxgo Apr 6, 2017 via iPhone 直接用 goaccess |
18 Suddoo Apr 6, 2017 不 google 还真不会,虽然用 linux 2年了,但上面这几个命令用得很少, bash 语法也不熟悉,因为我的目标职位不是运维。 |
19 U7Q5tLAex2FI0o0g Apr 6, 2017 如果是面试运维,这种答不上来估计会丢人 单纯面试后端开发,我觉得没必要一定会,当然会更好,但不会还可以 google |
20 wc951 Apr 6, 2017 via Android 现在难道都不用日志采集,而是自己去服务器上查日志? |
22 dongxiaozhuo Apr 6, 2017 via iPhone @1069401249 后端开发,直接上 py 脚本岂不美哉。非要用 shell 的面试,不去也罢。 |
23 fsgmhoward Apr 6, 2017 via iPhone 这个要考正则的吧 |
25 ming2050 Apr 6, 2017 via iPhone 数据量小我能直接写,如果数据量大我宁愿拖到 hdfs 再说 |
26 echo1937 Apr 6, 2017 老派 Linux 运维必考内容,他如果没有限定工具的话,写个 py 的实现我觉得也可以给分。 |
27 takeoffyoung Apr 6, 2017 如果考操作的话,上面说了那么多。 如果考算法的话,什么分治合并的模糊算法,什么 hash+heap sort 都是可以搜到答案的 |
28 C0VN Apr 6, 2017 如果不是考 shell ,用别的编程语言实现也没什么难度吧。 |
29 ryd994 Apr 6, 2017 via Android |
30 jy01264313 Apr 6, 2017 很全面的一道题目 |
31 q397064399 Apr 6, 2017 如果是后端, Python 明显比 shell 有优势,脚本 |
32 yuedingwangji Apr 7, 2017 这太简单了吧 , sort -n | uniq -c | sort -n 或者 awk 然后在 sort -n |
33 DravenJohnson Apr 7, 2017 为什么都在 sort ,难道这题不是问 IP 地址的么? |
34 flowfire Apr 7, 2017 via iPhone @DravenJohnson 23333 我也想知道到底问的是如何获取访问最多的 10 个 ip 还是问的是 10 个 ip 具体是啥 |
36 ichou Apr 7, 2017 via iPhone @q397064399 然而很多机器上并没有 python |
38 yaxin Apr 7, 2017 awk '{print $1}' /path/to/nginx | sort | uniq -c | sort -r -n -k 1 | head -10 用多了就熟练了 |
39 blacklee Apr 7, 2017 楼上 yaxin 的应该是正确答案,里面后一个 sort 我不看文档也不懂。 awk + sed 就能出一本 500+页的书,但是这个问题所需要的 awk 很基础。 另外就是多会一些 linux 的基础命令,会对你的实际工作产生相当不错的效率提升。 |
42 shyling Apr 7, 2017 连各种 docker 的基础镜像里都自带的 python ,不知道有些人的系统是什么 |
45 momocraft Apr 7, 2017 在 linux 中只见过 coreos 没 python. |
46 Felldeadbird Apr 7, 2017 运维这个很常用啊。 nginx 和 apache 生成的访问日志 格式都是一致的。楼主面试的运维,这个答不上就不是合格的运维了 |
47 loryyang Apr 7, 2017 必须允许用 man 吧,否则有些参数不常用的,肯定不会记得那么清楚的 反正很多时候都是 man 一下,再写,那么多参数,如果不是天天用,过几天就忘记了 |
48 killerv Apr 7, 2017 很多人没看到,楼主应聘的是后端开发,我觉得如果能用其他后端语言解出来这道题,没有问题,非要用 shell 就有点扯了,毕竟后端不是专业运维。 |
49 Famio Apr 7, 2017 好像很多人没看清楼主的问题。 如果是 access.log 的话,我觉得最多的 10 个 IP 应该是爬虫。 |
50 artandlol Apr 7, 2017 awk '{print $1}' /usr/local/nginx/logs/access.log |sort |uniq -c|sort -rn|head -10 or awk '{a[$1]++} END {for(b in a) print b"\t"a[b]}' /usr/local/nginx/logs/access.log | sort -k2 -nr | head -n 10 |
53 jingniao Apr 7, 2017 那么像这样的需求,用 python 写,多久写出来算是合格呢? |
57 xiaket Apr 7, 2017 |
61 veryyoung Apr 7, 2017 作为面试官,这道题出了 N 次了,目前为止只遇到一个人做出来。 然而基本每个人简历上都写了熟练使用 Linux 常用命令。 |
63 wdlth Apr 8, 2017 不应该加钱 ELK 么? |