当前位置: 首页 > 面试经验 >

百度提前批 一面凉经

优质
小牛编辑
85浏览
2023-08-01

百度提前批 一面凉经

岗位:SRE工程师

有错误不合适的地方欢迎各位大佬指正

1. 自我介绍 (1到2分钟不能超时)

面试官你好,我叫xx,是xx大学24届学生,就读网络工程专业,本次应聘的贵公司的岗位是SRE工程师,我目前是在xx公司担任运维开发实习生的岗位,主要工作是负责XX产品的维护,一键部署shell脚本的编写,集群化部署方案设计,如MySQL,Redis,ElasticSearch 集群部署,其余时间是学习公司的容器化运维文档,Docker和K8S 运维方面的学习; 我在大二暑假期间是在XX公司担任Java实习生的岗位,主要工作是负责WebXX项目的开发,和一些数据处理,我觉得我的优势在于有一定的运维工作经验,希望可以能够加入贵公司担任SRE工程师的岗位

2.谈谈你对运维的理解?以及你对运维的一些接触

平时我在学校的话,我既是开发也是运维,我当时认为运维就是把项目放到服务器上部署,不需要了,再把这个项目停掉,负责项目的发布和删除。但是对于一个企业,或者说系统化的运维来说,运维应该从成本,稳定性,移植更新迭代这几个方向上来考虑,比如说我现在参与的一键部署shell脚本的编写,就是为了方便部署,减少成本;但是对于有些企业来说可能单机部署方案不能够满足他们的需求,他们就需要根据自己的需求自定义构建集群,这是从稳定方面来考虑,项目更新升级迭代这些方面运维也需要考虑

3.Shell 脚本

面试官:”现在实习是写脚本比较多是吗?看样子你Shell学的还行。“

我:”我觉得还可以“

面试官:”来做道题“

我:”…………“

题目一

描述:有三列数字以 | 分隔 求每一列的平均数

#! bin/bash
awk -F "|" '{
sum1+=$1;
sum2+=$2;
sum3+=$3;
}END{
printf "%.2f %.2f %.2f\n",sum1/NR,sum2/NR,sum3/NR
}' data.txt

自测结果
[root@localhost ~]# cat data.txt 
1|2|3
1|2|3
1|2|3
[root@localhost ~]# bash baidu.com 
1.00 2.00 3.00

题目二

描述:给定一个文本,行可能是重复的,把重复的去了输出

#! bin/bash
cat data.txt | sort |uniq

自测结果
[root@localhost ~]# cat data.txt 
123
123
8989
123
8989
[root@localhost ~]# bash baidu.com 
123
8989

面试官:”你平时装软件yum 用的多还是apt 用的多“

我:”yum用的多一点,ubuntu只有大二实习的时候用过,现在基本没用“

面试官:”你写shell脚本还有那些命令用的多“

我:”我现在主要写的是项目部署脚步,用ps -ef 查看项目是否启动,netstat看端口占用,id -u 看是不是root用户启动脚本,tar -cxvf 解压,mysql -uroot -p < xxx.sql 运行sql“

面试官:”你判断端口占用使用netstat ,就是你有了解过,其实这个命令它的开销是很大的“

我:”这个我不太了解(毕竟能跑就行)但是用tasklist 也可以查看端口占用“

面试官:”行吧“

4.计算机网络

面试官:”网络工程专业是吧,那我问你点网络基础知识,你从宿舍输入baidu.com,到拿到响应结果期间过程说一下,能说多细就说多细“

我:“我在浏览器输入baidu.com ,首先我的主机回去host文件找这个域名有没有对应的ip,没有的话,就去找DNS服务器,如果你没改过,一般DNS服务器地址就是144.144.144.144,域名解析后拿到对应的ip,三次握手后拿到服务器的响应。”

面试官:”能不能细致一点,你在宿舍是怎么拿到外网服务器的响应的?“

我:”通过路由器转发“

面试官:”怎么个转发,宿舍有这么多设备,为什么不是发给你的手机而是到了路由器“

我:”网关的最后一位ip地址是1………………“ (我是真的不太会计网)

面试官:”或者我换个问法,你现在是在厦门,服务器是在北京,或者在广东,你是怎么把请求发过去的而不是发到别的位置“

我:“这我不太清楚………………”

面试官:”你们专业计算机网络应该学过吧“

我:“大一学的忘了”

这个问题后面百度了一下,感兴趣的同学看看,或者评论补充答案,我是真的不会(https://zhuanlan.zhihu.com/p/339106514)

5. 爬虫

面试官:”我看你大二实习这边有做过天眼查的爬虫是吗,具体过程说一下“

我:”我的任务是,给了我个excel表格,上面有很多公司的名称,一行一行排列,后面几列是空的,需要我把电话号码,邮箱,公司地址等信息从天眼查上爬下来,然后填进去,我是直接爬取的静态网页,观察天眼查网页搜索功能发现,比如说搜索 “百度”,他的url可能就会变成 http://tianyancha.com?search="百度” ,我直接用Java发一个http请求过去,然后返回网页的响应,它是一个字符串,从这个字符串里面截取 “邮箱:”,就能拿到我要的邮箱信息 ”

面试官:”那它有些URL是不会变的你怎么搞,比如说你点那些地址,或者子公司什么的,有些他浏览器上面的URL不会变的,是JavaScript发的请求,这种你怎么弄“

我:”这个我爬公司专利信息的时候也弄过,比如说我搜,百度,有个专利信息链接,点击后url不会变,但是你打开F12,会看到对应的请求,也是有一定规律,在上一步后面加就行了“

面试官:”天眼查这个网站应该要登录吧“

我:”要登录,我在浏览器上面登录,登录后到设置,把这个网站上存的cookie,全部复制下来,再用Java 存起来后模拟登录,发送请求“

6. 算法

面试官:“数据结构与算法90是吧,来两道题”

题目一:括号匹配

#include<stack>
class Solution {
public:
    bool isValid(string s) {
        stack<char> mystack;
        for(int i = 0 ;i< s.length();i++){
            if(s[i]=='('||s[i]=='{'||s[i]=='['){
                mystack.push(s[i]);
            }else if(s[i]!='\"'){
                if(!mystack.size())
                    return false;
                if(s[i]==')'&&mystack.top()!='(') return false;
                if(s[i]==']'&&mystack.top()!='[') return false;
                if(s[i]=='}'&&mystack.top()!='{') return false;
               mystack.pop();
            }
        }
        if(mystack.size()) return false;
        return true;
    }
};

题目二:数据流中的中位数

class MedianFinder {
public:
    priority_queue<int ,vector<int> ,greater<int>> A;
    priority_queue<int ,vector<int>, less<int>> B;
    MedianFinder() {
    }

    void addNum(int num) {
        if(A.size()==B.size()){
            B.push(num);
            A.push(B.top());
            B.pop();
        }else {
            A.push(num);
            B.push(A.top());
            A.pop();
        }
    }
    
    double findMedian() {
        return A.size()==B.size()?(A.top()+B.top())/2.0:A.top();
    }
};

7.反问部门业务

面试官讲了挺长时间,百度地图,还有贴吧什么的,主要介绍SRE工程师负责的内容,和运维开发工程师负责的内容,记不太清了

大概是运维开发主要是开发运维平台,而SRE主要是从整体架构上考虑运维成本,运维稳定性,用最少的机器达到最好的运行效果

8.总结

没问Docker,K8S 可能看我简历也觉得我不太会,计算机网络基础答的一团糟,虽然有过挺多次面试,但是自我介绍还是慌得一批,不知道有没有二面

#提前批##百度##java话题##运维##秋招提前批启动你开冲了吗#
 类似资料: