
2019年秋天我参加了招商银行信用卡中心的IT笔试岗位是运维方向。整场笔试做下来最大的感受是不套路很务实。跟互联网公司那种偏算法、偏框架源码的风格不同招行信用卡中心的运维笔试更看重基本功——Linux操作、网络排障、数据库常识、脚本能力每一块都是实际工作中天天要碰的东西。这篇文章把当时笔试涉及的核心考点、答题思路、以及后来复盘时总结的备考经验整理出来。不管你是准备金融行业运维岗还是想系统梳理运维基础知识都可以拿这份内容当复习提纲。金融行业的运维笔试不会考偏题怪题但会把基础问得非常细细到你平时不注意的角落。1. 笔试基本情况形式、范围与金融行业运维的特殊要求1.1 2019秋招运维笔试的考试形式招商银行信用卡中心的秋招笔试一般在九月下旬到十月上旬分批进行IT岗位采用统一在线笔试系统运维方向和技术开发方向共用一套基础卷但在专业题部分有明显区分。从我参加的那场来看题型分为四类单选题、多选题、判断题、简答题。单选和多选覆盖计算机基础、网络、Linux、数据库简答题则更偏向实际运维场景比如故障排查思路、备份方案设计。在线笔试的时间是90分钟题量大约在60道左右。前50道客观题要求快速作答后面几道简答题才是真正拉开差距的地方。客观题很多是“一眼题”会就是会不会就是不会没有太多蒙的余地。多选的难度明显高于单选因为多选少选、错选都不得分这对知识掌握的精确度要求很高。金融行业的IT笔试还有一个特点对安全、合规、容灾的内容会格外关注。互联网公司可能更看重你对高并发、微服务架构的理解但银行系更关心的是系统稳不稳定、数据安不安全、出问题时能不能快速恢复。这个差异会直接体现在题目设计上。1.2 金融行业运维笔试与互联网笔试的差异我在准备笔试的时候曾经拿互联网公司的运维笔试题做对比发现两者的侧重点完全不同。互联网公司的运维笔试题通常包含大量容器、Kubernetes、CI/CD相关的内容甚至会出现“如何设计一个支撑百万QPS的网关”这类的题目。但招行信用卡中心这场笔试里几乎没有出现容器和Kubernetes的题目重点放在传统运维技能上Linux系统管理、网络协议、Shell脚本、MySQL数据库。这倒不是说银行不用容器技术而是在校招阶段他们更想确认你有没有扎实的基础功底。另外金融行业的笔试题目里对“变更管理”“故障分级”“灾备切换”这些概念的考察也是互联网公司很少涉及的。比如有一道简答题问到“生产环境误删数据文件后如何处理”这其实就是金融运维日常工作中最典型的场景。银行对数据完整性的要求远高于一般互联网业务一旦出现误删恢复流程必须清晰可控。所以如果你准备的是银行类运维岗位复习思路不能照搬互联网公司的面经。把Linux基础、网络基础、数据库基础打牢比去背一堆K8s面试题有用得多。2. Linux基础与系统运维笔试中占比最大的模块2.1 Linux命令类考点高频原题与解题思路Linux是运维笔试的绝对核心招行信用卡中心这场笔试里Linux相关题目占了将近三成。选择题考察的点非常细比如查看系统负载用什么命令、查找文件用什么命令、查看端口占用用什么命令、如何给文件设置特定权限等几乎都是日常运维的高频操作。我印象很深的一道题是如何查看服务器当前所有TCP连接的状态统计。答案是ss -s或netstat -s但选项里混了一个lsof -i。lsof确实可以查看端口占用但不能直接输出TCP状态的汇总统计。这种题目就是在考你对命令的理解深度——不是背命令名而是清楚每个命令的输出内容和使用场景。还有一道关于权限的题如何让一个文件对所有者可读写、同组用户可读、其他用户无权限。正确的chmod写法是chmod 640 file。但选项里包含了chmod 760、chmod 630、chmod 740这些混淆项。如果你对权限位的数值计算不熟悉很容易选错。这里其实有个很实用的记忆方法r4w2x1所有者、组、其他人三组权限依次排列640表示所有者读写6、组读4、其他人无权限0。文本处理三剑客 grep、awk、sed 也是必考内容。笔试里出现了这样一道题从日志文件 access.log 中统计每个IP出现的次数并按次数降序排列。标准写法是awk {print $1} access.log | sort | uniq -c | sort -rn这个组合命令考察了四个工具的配合awk 提取第一列IP、sort 排序、uniq -c 去重并计数、sort -rn 按数值降序排列。如果你只是知道每个命令的单独用法但不知道它们如何串联协作这道题就会卡住。2.2 系统性能分析与故障排查从命令到思维另一类高频题是系统性能分析方向题目会给你一个故障场景让你选择优先使用什么命令排查。比如服务器响应变慢你会先用哪种方式确认瓶颈是什么这类题的解题思路遵循“从全局到局部”的原则。首先用top查看整体负载情况确认是CPU、内存还是IO问题然后根据 top 的输出用free查内存、iostat查磁盘IO、vmstat查系统整体的CPU/内存/IO状况定位到具体进程后再用strace跟踪系统调用确认卡点。面试笔试中经常考的还有个概念题什么是平均负载load average很多人以为平均负载是CPU使用率其实它们完全不同。平均负载是指单位时间内系统中处于可运行状态和不可中断睡眠状态的进程平均数量。当平均负载高于CPU核心数时说明系统已经超负荷运行。比如一台4核服务器load average 长时间在6以上说明有大量进程在等待CPU资源这时候就需要排查是哪类进程在消耗CPU。金融行业的故障排查题还有一个特点会强调操作规范。多选题里有一道“生产环境排查故障以下做法正确的是”选项包括“先备份再操作”“直接重启服务器”“操作前记录当前状态”“变更前通知相关方”。这道题的正确选项是“先备份再操作”“操作前记录当前状态”“变更前通知相关方”而“直接重启服务器”是典型的错误做法——在不清楚故障原因的情况下直接重启可能掩盖问题甚至导致数据不一致。2.3 计划任务、服务管理与安全加固Linux 基础里还有一批题目涉及计划任务和服务管理这块比较琐碎但在笔试中出现频率不低。计划任务考的是crontab的语法。比如“每天凌晨2点执行 /opt/scripts/backup.shcrontab怎么写”答案是0 2 * * * /opt/scripts/backup.sh。这里考察分、时、日、月、周五个字段的含义和顺序。有一个容易搞混的点crontab 的五个字段分别是分、时、日、月、周而不是时、分、日、月、周。考试里故意给了一个0 2 * * *和2 0 * * *的混淆选项如果顺序搞反了就会选错。服务管理主要考 systemctl 的基本操作。启动服务、设置开机自启、查看服务状态分别对应systemctl start、systemctl enable、systemctl status。这个不难但要注意 systemctl 和 service 命令的区别service 是 SysVinit 时代的命令systemctl 是 systemd 时代的命令在主流Linux发行版中推荐使用 systemctl。安全加固相关的题目银行笔试比互联网笔试更重视。比如 SSH 安全配置如何禁止root用户直接登录、如何修改SSH默认端口。正确答案是修改 /etc/ssh/sshd_config 中的 PermitRootLogin 和 Port 参数然后重启sshd服务。笔试中有一道判断题“修改sshd_config后直接重启sshd服务不会影响已有连接。”这个说法其实是对的——sshd 是主进程重载配置只会影响后续的新连接已经建立的连接不受影响。但如果改成“重启sshd服务”在部分旧版本操作系统上会中断已有连接所以审题时要特别注意“reload”和“restart”的区别。3. 网络基础与网络运维协议理解与排障能力3.1 TCP/IP协议族考点三次握手与四次挥手网络基础是运维笔试的另一个重头戏。招行信用卡中心的试卷里网络部分的题目大概占了五分之一左右主要集中在TCP/IP协议栈、HTTP协议、DNS解析这三个方向。TCP三次握手几乎是必考题。题目通常会问“TCP建立连接时客户端和服务器的状态变化是什么样”正确答案是客户端从CLOSED到SYN_SENT服务器从LISTEN到SYN_RCVD客户端收到SYNACK后进入ESTABLISHED服务器在发送SYNACK收到ACK后也进入ESTABLISHED。有一个经常被忽略的细节第二次握手时服务器是同时发送SYN和ACK两个标志位而不是先发ACK再发SYN。这在抓包时表现为一个包而不是两个包。四次挥手同样是高频考点。选择题会问“TIME_WAIT状态出现在哪一端”答案是主动关闭连接的一方。TIME_WAIT持续时间为2MSLMaximum Segment Lifetime报文最大生存时间默认是2分钟1分钟MSL的2倍。TIME_WAIT存在的原因是保证被动关闭方能够收到最后的ACK防止旧连接的延迟数据包在新连接中被错误接收。3.2 HTTP与DNS日常工作最高频的排障场景HTTP状态码是网络笔试的送分题但选项往往会设置一些容易混淆的陷阱。301和302的区别就会考301是永久重定向302是临时重定向。503和504也会考503是服务不可用服务器过载或停机维护504是网关超时代理服务器无法在规定时间内从上游服务器收到响应。我印象比较深的一道题是用户反馈网页打不开浏览器显示“404 Not Found”这个错误代表什么答案很简单服务器上找不到请求的资源。但题目在选项里放了“服务器宕机”“网络不通”“DNS解析失败”等干扰项。做这类题时只要记住4xx错误都是客户端错误5xx错误才是服务器端错误就能快速排除干扰项。DNS解析流程的考察频率也很高。一道典型题目是“用户在浏览器输入域名从输入到访问页面DNS解析的顺序是什么”正确顺序是浏览器缓存、操作系统缓存hosts文件、本地DNS服务器递归查询、根域名服务器、顶级域名服务器、权威域名服务器迭代查询。笔试很容易在递归查询和迭代查询的概念上设置陷阱用户到本地DNS服务器是递归查询本地DNS服务器到根域名服务器等是迭代查询。这个方向搞反的人非常多。3.3 网络排障工具的组合使用网络排障工具类题目考察的不只是单个命令的用法而是工具之间的配合逻辑。ping、traceroute、telnet、netstat、curl 这五个工具是最常考的。我做题时整理过一个使用场景表工具核心用途典型场景ping测试连通性和延迟确认目标主机是否可达traceroute查看路由路径和故障点定位链路中哪一跳丢失或延迟过高telnet测试TCP端口是否开放确认目标服务的端口是否可访问netstat/ss查看本机端口监听和连接状态确认服务是否正常监听、连接数是否异常curl模拟HTTP请求查看响应排除应用层访问故障有一道题问“某个Web服务无法从外部访问但服务器上 curl http://127.0.0.1:8080 能正常返回数据。下一步应该怎么做”正确思路是先在服务器本机确认服务正常然后用netstat -tlnp确认服务监听的地址是 0.0.0.0 还是只有 127.0.0.1如果只监听了 127.0.0.1外部自然无法访问。这种题看起来在考命令实际在考“从现象到定位”的排障思路。金融行业对网络安全特别敏感笔试还考了一类“安全加固”相关的网络题。比如公司内部某台数据库服务器需要限制来访IP你会怎么做答案是使用防火墙规则或安全组策略只允许指定IP段访问并关闭不必要的端口。这种题目考察的核心不是技术本身而是你在日常工作中有没有安全意识。4. 数据库、脚本与运维开发区分“能干活”和“会干活”4.1 MySQL索引、事务与备份恢复数据库题目在招行信用卡中心运维笔试里占了不小的比重主要考MySQL。索引和事务是选择题的常客备份恢复则是简答题的常客。索引方面有一道题问“对于一条高频执行的查询语句 WHERE status 1 AND create_time 2024-01-01应该建什么样的索引”正确的做法是创建联合索引比如(status, create_time)并且把等值查询的字段放在前面范围查询的字段放在后面。这在数据库里叫“最左前缀原则”是MySQL索引使用最基础也最重要的规则。事务方面笔试考了ACID特性和隔离级别。题目问“MySQL默认的隔离级别是什么”答案是可重复读REPEATABLE READ。这个在很多人的知识盲区里因为Oracle的默认隔离级别是读已提交READ COMMITTED如果不特意区分很容易答错。进而还会问“可重复读和读已提交的差异是什么”——在可重复读下同一个事务中多次读取同一行数据结果一致而读已提交下每次读到的都可能是其他事务刚提交的最新数据。这个差异在金融交易类系统中非常重要因为任何一次查询结果不一致都可能导致金额计算错误。备份恢复是金融运维笔试的特色题。题目描述了一个实战场景“数据库误删了一张核心业务表你作为运维如何处理”答题要点包括确认误删范围和影响程度、立即联系DBA和相关业务方、评估是否有备份和binlog可以恢复、恢复前对当前状态做快照保护、恢复后验证数据一致性。这道题没有标准答案但考察的就是你的数据库运维经验和应急处置意识。4.2 Shell与Python自动化运维的入场券脚本能力在笔试中主要通过选择题和简单的编程题来考察。编写Shell脚本的基础语法如变量定义、条件判断、循环操作是必考内容。我记得有一道Shell题是用for循环批量创建用户并设置初始密码。大概考察的代码逻辑是这样的for user in zhangsan lisi wangwu; do useradd $user echo $user:123456 | chpasswd done这个代码里有几个考点变量引用要加$循环体内用分号或换行分隔语句echo user:password | chpasswd是批量改密的正确方式。另一个容易犯错的地方是useradd和adduser的区别。在CentOS上useradd是标准命令adduser是指向useradd的链接在Ubuntu上adduser是交互式命令useradd才是底层命令。笔试不会考得这么细但如果你在简历里写了“熟悉Linux用户管理”面试官很可能追问这一点。文本处理也是脚本题的高频考点。有一道题“从dmesg输出中筛选出包含error的行数并统计行数”正确答案是dmesg | grep -i error | wc -l这道题的关键点是确认 grep 是否区分大小写。Linux日志中的错误信息经常写成error、Error、ERROR混用所以用-i忽略大小写才更稳妥。类似这种细节笔试特别喜欢出。Python 在银行运维笔试里通常会以“填空”的形式出现一两道题比如写一个函数传入一个IP列表返回去重后的结果。这种题难度不高只要掌握列表、集合、基础语法就能拿分。真正重要的事情是你得知道什么时候用Shell、什么时候用Python。Shell适合处理文本和调用系统命令Python适合处理更复杂的业务逻辑和数据结构。这个判断力在简答题的答题思路上能体现出来。4.3 监控、日志与自动化运维体系简答题里有一道让我印象深刻的“生产环境有10台服务器你如何设计一个简单的监控方案和日志收集方案”这道题的参考答案其实并不复杂核心是能体现出系统化的思维。我当时的回答思路是这样的监控方面先关注基础指标——CPU、内存、磁盘、网络用Zabbix或Prometheus做数据采集和告警日志方面用ELKElasticsearch、Logstash、Kibana或者Loki做集中收集和检索。但答题的关键点在于你不仅要说出选型更要说出为什么这么选、怎么落地。比如为什么用Zabbix而不是Prometheus如果你的团队本来就熟悉Zabbix学习成本低而且金融行业对开源组件的引入有严格的安全审核流程。再比如日志平台搭建后索引怎么切分、生命周期怎么管理、保留多久才符合审计要求这些才是银行运维持有的问题。这类问题考的不是你会不会用某个工具而是你有没有“从零到一搭建一个可用的运维体系”的完整思路。面试官想看到的是你对监控和日志这两个基础能力有从采集、存储、展示到告警的闭环。5. 笔试复盘与备考建议给后来者的实操路线5.1 刷题之外的底层能力我后来复盘这场笔试时发现能拉开差距的其实不是刷了多少题而是平时有没有真正在Linux环境里做过反复操作。一道命令考题如果你只在书上看过而没有亲手敲过考试时可能会有“这个命令好像是这样用”的模糊感但无法100%确定。而那些在真实服务器上跑过、踩过坑的人一眼扫过题目就知道答案。所以如果你现在还在准备运维岗笔试我的建议是准备一台Linux虚拟机或云服务器把笔试高频考点全部操作一遍。查看进程状态、修改权限、写crontab、部署一个nginx并配置访问日志模拟在日志里定位错误信息这些操作看起来很基础但就是笔试最常考的内容。你只有真正操作过一次才会记得chmod 755和chmod 4755的区别在哪里。同时要养成“看官方文档”的习惯。比如man grep、man awk、tldr awk花一晚上把三剑客的常用参数过一遍收益远大于漫无目的地刷题。准备考试本质上是在帮你补齐知识盲区而这些盲区恰恰是未来工作中会踩的坑。5.2 笔试时间分配与答题顺序在线笔试有一个很大的特点题目一旦提交就不能回头修改。这意味着你的做题策略非常重要。我当时的策略是先做单选题再做判断题这两类题尽量控制在40分钟内完成然后做多选题因为多选不能错选、漏选所以检查一遍再确定答案最后留30分钟给简答题。简答题不需要写代码重点是逻辑清晰、步骤完整把每一步的原因讲清楚。多选题是一个最容易丢分的模块。做题时如果有一个选项拿不准宁可少选也不要乱选。因为多选题的给分规则通常是“全部选对才得分”少选还能算部分分具体要看清题目说明但只要选错一个整题就没分了。我记不清招行这场考试的具体计分方式了但稳妥策略一定是不确定的选项坚决不选。简答题的作答方式也值得说一下。建议用“分步骤、分条目”的方式写先把主流程框架列出来再填充每个步骤的具体命令和工具。比如问“如何排查服务器负载过高”可以按下面的结构来写查看 load average 确认是否超负载uptime或top用top按CPU占用排序top -o %CPU用vmstat 1 5查看CPU、内存、IO的整体状态定位到具体进程后用pidstat确认进程的CPU和内存占用排查是否还有异常进程比如挖矿程序用ps -ef | grep -v grep | awk {print $1, $2, $3}检查进程树这种结构化的写法能让阅卷人快速理解你的思路也显得你确实有实际排障经验。5.3 金融行业运维求职的注意事项金融行业的运维笔试还有一个隐含考核点你在作答中体现的“规范意识”。比如当问你“如何处理生产告警”时回答里最好体现出分级处理、及时通报、变更留痕这些概念。银行是强监管行业运维操作的每一步都要有据可查这决定了他们的候选人画像天然偏向严谨和细致。另外金融行业的IT招聘即使是在校招阶段也会非常看重候选人对“变更”的敬畏心。笔试简答题经常考“如果你要在一台生产服务器上修改配置文件你会怎么做”正确的答题方向包含先确认变更窗口、查看当前配置备份、修改前用diff确认变更内容、保留回滚方案、变更后验证服务状态。这种习惯如果平时没有刻意培养考场上很难短时间想完整。对于准备银行系运维岗位的后来者有一个可以长期投入的方向多了解主流运维工具的原理而不只是会安装和使用。比如Nginx的upstream策略有哪些、为什么keepalive能减少TCP握手开销、Linux的inode耗尽会导致什么故障、如何用systemd管理服务守护进程。这些知识在笔试和面试中都会被反复考察是金融行业运维岗位真正的“底层功”。写在最后回头看这场笔试它并没有考什么偏题怪题所有内容都指向一个目标你有没有能力在生产环境中当一个合格的运维工程师。Linux命令只是载体真正被考察的是思路和习惯。操作前是否知道备份排查时是否知道从全局到局部遇到故障时是否清楚自己的操作可能影响什么——这些能力比任何一道题本身都重要。如果你也准备考金融行业的运维岗位记住一条核心原则把基础知识吃透把每个操作背后的原理搞清楚比刷十套模拟题都有用。我在备考期间踩过的坑、总结的经验都在前面写出来了希望你能少走一些弯路。