(PHP开发工程师)我的面试之旅
一面大概有120道选择题20多道简答题(linux/网络 30道选择题 5道简答题 MYSQL 30道选择题 3道简答题 PHP 30道选择题 5道简答题 HTML 30道选择题 5道简答题),题目有一定的难度,不是基础题,1个半小时做完,但一面还是比较顺利就通过了,二面估计是over了(回去等通知)倒是关于大数据高并发如何处理没有提问(就这个准备的还行),下面是二面问的一些题目(有些题记不清了,没有写):
1、如何在同一小时内,但不是同一秒执行所有脚本?
我的思路是:
1、将所有的脚本执行命令放到同一个文件中
如command.txt文件中一行一个命令
ls
netstart -lnt
ps -aux | grep mysql
2、编写一个shell脚本去执行这些命令,由于是同一小时内,所以command.txt中的命令行数不能超过3600行
command.sh
#!/bin/bashfile="command.txt"[ ! -f "$file" ] && echo "$file not found" && exit 0count=`cat $file | wc -l`[[ $count -gt 3600 ]] && echo "too much command which can not execute in one hour" && exit 0while read linedo `echo $line` sleep 1done <br> 3、制定定时计划<p> crontab -e </p><p> * 12 * * * (bash command.sh)</p><p> 每天的12点定时执行此脚本</p><p> </p><p> 2、算法题目:用户在搜索引擎中输入一句话,如果些话中包含敏感词,则不向用户显示任何内容 </p><pre name="code" class="php"><?php $sensetive = array('法轮功', '胡锦涛', '江泽民');$str = $_POST['input'];for($i=0; $i<count($sensetive); $i++){ if(strstr($str, $sensetive[$i])){ return true; }}return false;
此题待讨论,欢迎网友提供更好的方法
3、http协议,请求头和响应头参数有哪些?
method
header
connection
cache-control
content-type
user-agent
cookie
content
content-length
4、有一个日志表专门负责记录所有日志,每天的日志量大概有200W条,如何建表更好的利于查询日志?
由于每天产生的日志量很大,所以我们可以考虑将此日志表按天进行水平分割,这样我们就可以方便的查询每天的日志记录,即使是每天对应一个表,数据量还是很大的,建议根据日志添加时间比如add_time建立索引,更方便的查询每天每个时间点的日志记录。
5、简述一下你做过的项目
面试官很有水平,可以根据你简述的项目,来进行提问,总会提一些你可能平时见过,但不太在意的一些东西,感觉回答的不够好。所以找工作前一定要把自己做过的项目仔仔细细的想一遍,把遇到的问题记录下来进行深入的研究下,特别是安全性方面,如何保证你做的东西安全性很强,哎……最后回去等消息,估计是没什么戏了