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