鹅厂后台开发工程师的工作日常

 写在前面 :本故事纯属虚构,如有雷同,不负责任。为了整理 Linux 开发和日常使用的常用命令,想了好几天才串了这么个故事。虽然有点牵强,但是内容还是挺干的~欢迎大家点评。

在很久很久以前,鹅厂开发类工程师职级分为:助理工程师、工程师、高级工程师和专家工程师四大类。

小特特从北京某学校毕业后,据传因为其性别比较突出,所以很幸运地拿到了工程师的职级,并在毕业后顺利成为了一只新鹅。

1. 班车风云

这天,小特特顶着乱糟糟的头发,穿着拖鞋和短裤,斜挎着塑料编织袋,抓上工卡和手机就挤上了最晚的一趟班车。

正当其憨憨入睡时,手机不知趣地响起了一阵"悦耳"的铃声。那独一无二的动听旋律,小特特不用拿出手机便已知是公司的告警电话。

她慌慌张张从编织袋里拿出手机,按下接听后,一个熟悉的机器女声:"您有一个硬盘告警,IP为...",话音未落,小特特就按下了 1 而自动结束了这次人机对话。

2. 办公室之殇

来到工位后,小特特既娴且熟地打开 xshell 登录到跳板机后,使用 ssh xiaott@1.2.3.4 登录到了硬盘告警的机器。输入 sudo su - worker 切换到 worker 用户后,小特特使用 df -h 命令查看完各分区的容量,再快速输入 du -h --max-depth=1 命令查看当前目录下各文件(及文件夹)的大小。发现 xxx.log 文件占用了近 100 G空间后,她果断地使用了 rm xxx.log 命令将其进行了删除。

删除完文件后,小特特还执行了下 ls –lhS 命令将当前目录下各文件以从大到小的顺序进行展示。

处理完硬盘告警后,小特特通过 ssh 远程连接到了个人云开发机,开始使用 Vim 进行日常开发。<Ctrl n> 自动补齐,ctags 进行函数跳转,filetype 设置语法高亮,quickfix 列表快速编译,vim-fugitive 插件实现在 Vim 中完成各种 git 操作。随着自定义配置和插件的逐步完善,小特特已经能够在 Vim 下完成日常的开发工作。

正当其在代码的世界徜徉时,企业微信上弹出了一个线上服务告警通知。为了避免出现重大外网事故,小特特赶紧登上了告警服务所在的一个机器,先使用 cd 命令切换到服务的运行目录,再使用 tail -f xxx.log.20191212 实时滚动下服务日志。

从滚动的命令行发现错误 log 均出现在请求某个外部 CGI 接口后,小特特使用 awk '-F,' '{if ($666==110) print $999}' xxx.log.20191212 提取出了返回错误的所有 URL。

为了确认是否是必现错误,小特特使用 curl -d 命令模拟了一次请求。由于内部请求使用的是 HTTP 协议,小特特还使用 tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)' 对模拟请求进行了抓包分析。

小特特确认错误原因是外部接口超时未返回后,立即联系了该接口对应的负责同学。处理完这个问题后,小特特继续了她的开发工作。

当需要安装某个开源库时,小特特使用 rz -bey 命令将本地 Windows 机器上的压缩包传到了开发机,然后使用 md5sum xxx.tar.gz 命令验证传输的文件是否正确,最后再使用 tar xvzf xxx.tar.gz 命令将压缩包解压后进行使用。

find -type f -name README.md 命令在当前工作目录中查找名为 README.md 的所有文件。

临近黄昏时,又一个进程占用 CPU 过高的告警出现在了手机上。登录上机器后,小特特先使用 history | tail -n 200 查看最近执行过的命令列表,看下是否有异常情况。确认无异常后,她使用 top 命令查看系统的 CPU、内存等的使用情况。

top 命令的基本视图中,按数字 1 监控每个逻辑 CPU 的使用情况;按 P 实现按 CPU 降序排列,按 M 按内存降序排列。

为进一步查看系统运行现状,小特特还使用 free -h 命令查看了内存的使用情况。发现确实是因为用户请求量增加而导致服务使用 CPU 和内存过高后,小特特急忙通知了运维同学进行了扩容处理。

晚上九点半,小特特基本完成了一天的开发工作,为了测试下新开发的功能是否正常。编译通过后,使用 nohup xxx 9999 启动了进程,并监听在 9999 端口。

启动完进程后,小特特使用 netstat -anp | grep -w 9999 命令确认进程确实在监听 9999 端口。测试过程中,她发现进程加载的一个外部 so 动态库对应功能并没有生效,lsof xxx.so 命令也显示启动的进程并没有加载该 so 文件。

使用 GDB 调试时发现,该 so 并没有导出函数 fffff nm -D xxx.so | grep fffff 命令也证实了该 so 确实没有导出该函数。

因为这个 so 是其他团队提供的组件,所以小特特通过 sz 命令将该文件传输到 Windows 机器上后发到了企业微信群进行讨论。

同时,小特特使用 ps aux | grep -w xxx| grep -v grep | awk '{print $2}' | xargs kill -9 停掉了测试进程 xxx

3. 结语

数了下,文中出现了近 30 个 Linux 命令,我"太男"了。熟练使用这些命令,个人觉得已经可以应付 Linux 下的初级开发和运维工作了。

欢迎关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/312778.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET Core开发的iNeuOS工业互联网平台,发布 iNeuDA 数据分析展示组件,快捷开发图形报表和数据大屏...

经过一段时间的努力&#xff0c;iNeuDA产品组件已经开发和测试完成&#xff0c;现在正式上线。现在iNeuOS工业互联网操作系统的技术体系和产品体系更佳完善&#xff0c;为中小企业提供更佳全面解决方案。如下图&#xff1a;iNeuDA 一站式大数据分析平台作为国内领先的新一代自助…

asp.net core 从 3.0 到 3.1

asp.net core 从 3.0 到 3.1Intro今天 .net core 3.1 正式发布了&#xff0c;.net core 3.1 正式版已发布&#xff0c;3.1 主要是对 3.0 的 bug 修复&#xff0c;以及一些小优化&#xff0c;而且作为 LTS 版本&#xff0c;建议大家升级。值得一提的是.net core 2.2 这个月就要寿…

身边的设计模式(三):抽象工厂 与 依赖注入

上篇文章&#xff0c;我们说到了简单工厂和工厂方法&#xff0c;如果没看过的&#xff0c;请先看上篇&#xff0c;不然的话&#xff0c;可能有些吃力&#xff0c;或者直接点击阅读原文&#xff0c;查看我博客园的对应详细版的文章。大家学到了这里&#xff0c;我建议自己可以练…

Java基础知识——Java集合详解

数组是Java很常见的一种数据结构&#xff0c;能够快速地进行存取。但是当遇到下面几种情况&#xff1a; ①我们需要存储的数据集数目是不定的 ②我们希望数据集能够自动排序 ③我们需要以键值对的方式存储数据 … 数组就不能满足我们的需求了。这时候&#xff0c;我们就需要使用…

边缘计算与云计算的不同,这篇说明白了!

术语“边缘计算”是指一种分布式计算&#xff0c;是将数据存储和计算带到需要它的站点或设备附近&#xff0c;这种分配设置消除了滞后时间并节省了带宽。与“物联网”相比&#xff0c;这是一种针对云环境的优化方法。它在数据源附近&#xff08;即网络的“边缘”&#xff09;处…

经典排序算法(12)——总结

一、排序算法简介 排序算法&#xff08;Sorting algorithm&#xff09;是一种能将一串数据&#xff0c;依照特定排序方式&#xff08;依照其中的某个或某些关键字的大小&#xff09;进行排列的一种算法。 常见的排序算法有&#xff1a;交换排序&#xff08;冒泡排序、快速排序&…

在Asp.Net Core MVC 开发过程中遇到的问题总结

1. Q: Razor视图中怎么添加全局模型验证消息A&#xff1a;使用ModelOnly<div asp-validation-summary"ModelOnly" class"text-danger"></div>2.Q&#xff1a;树形表格&#xff0c;使用的是bootstrap-tablejquery.treegridA&#xff1a;效果参考…

为什么子线程中不能直接更新UI

点击上方“dotNET全栈开发”&#xff0c;“设为星标”加“星标★”&#xff0c;每天11.50&#xff0c;好文必达全文约4000字&#xff0c;预计阅读时间8分钟当初有同事就碰到类似的问题&#xff0c;于是就总结了一些&#xff0c;那时写这篇文章是我还在第一家公司。今天有人提到…

解决问题的能力 10倍程序员

大家好&#xff0c;我是Z哥。今天我们聊的话题对大多数人来说应该都算是一个“痛点”&#xff0c;就是怎么提高自己解决问题的能力。我们的工作中&#xff0c;每天会遇到大大小小的很多问题。其中有些是之前从未遇到过的问题&#xff0c;这对很多人来说就会很棘手&#xff0c;不…

.NET Core 3.1正式发布,还不赶快升级!

点击蓝字关注我们 .NET Core 3.1于2019年12月3日正式发布&#xff0c;这是一个长期支持&#xff08;LTS&#xff09;版本&#xff0c;并且将支持三年&#xff0c;这个版本对.NET Core的许多方面进行了改进&#xff0c;建议您尽快升级。 .NET Core 3.1 的变更日志很小。唯一新增…

.NET Core Blazor 1-Blazor项目文件分析

简介Blazor是一个使用.NET技术用于代替JavaScript/typescript的前端WEB框架。在前端开发中使用.NET语言进行书写逻辑有利于我们的性能、可靠性和安全性。并且对于使用.NET开发人员而言&#xff0c;全栈的成本更低。截止文章发布时&#xff0c;.NET Core已经发布了3.1版本&#…

除了HTML、CSS与JS,现在WASM也是标准Web语言

大家应该知道&#xff0c;万维网联盟 W3C 认证的 Web 语言有 HTML、CSS 与 JavaScript&#xff0c;而近日联盟正式宣布 WebAssembly 核心规范&#xff08;WebAssembly Core Specification&#xff09;成为官方 Web 标准&#xff0c;这意味着 WebAssembly 成为了第 4 种 Web 语言…

DDD实战与进阶 - 值对象

概述作为领域驱动设计战术模式中最为核心的一个部分-值对象。一直是被大多数愿意尝试或者正在使用DDD的开发者提及最多的概念之一。但是在学习过程中&#xff0c;大家会因为受到传统开发模式的影响&#xff0c;往往很难去运用值对象这一概念&#xff0c;以及在对值对象进行持久…

C# Lazy Loading

前言按需加载对象延迟加载实际是推迟进行创建对象&#xff0c;直到对其调用后才进行创建初始化&#xff0c;延迟&#xff08;懒加载&#xff09;的好处是提高系统性能&#xff0c;避免不必要的计算以及不必要的资源浪费。常规有这些情况&#xff1a;对象创建成本高且程序可能不…

将 WinForms 应用从 .NET Core 3.0 升级到 3.1

点击上方蓝字关注“汪宇杰博客”导语我作为社区里的“拖控件之王”&#xff0c;拖控件贼心不死&#xff0c;有时候会维护一些老项目&#xff0c;其中包括一个2004年的WinForms 软件。9月份的时候我曾经将它迁移到了 .NET Core 3.0&#xff0c;因为代码实现完全没动&#xff0c;…

戴明博士:管理的十四项原则

爱德华兹戴明博士&#xff08;Dr. W. Edwards Deming&#xff09;于1982年首版发行的《走出危机》(Out of The Crisis)一书中&#xff0c;提出了组织管理的14条基本原则。书中戴明博士认为&#xff1a;当时的美国企业多致力于追求短期利润&#xff0c;缺乏不断推出新产品及完善…

在Windows系统中构建还原ASP.NET Core 源码

大家好&#xff0c;这几天试着从Github上拉取AspNetCore的源码&#xff0c;尝试着通过Visual Studio 打开&#xff0c;但是并不尽人意。我们需要去构建我们拉去的源代码&#xff0c;这样才可以通过VisualStudio可还原的项目。毕竟AspNetCore是一个巨型的项目集。先决条件在Wind…

用HttpReports快速搭建API分析平台

HttpReports简单介绍HttpReports 是 .Net Core下的一个Web组件&#xff0c;适用于 WebAPI 项目和 API 网关项目&#xff0c;通过中间件的形式集成到您的项目中, 通过HttpReports&#xff0c;可以让开发人员快速的搭建出一个 API 性能分析的基础报表网站。主要包含 HttpReports …

他,TypeScript GitHub Star 上海第一,全国第四!GitHub 总标星超两万!

前两天和老同学羡辙&#xff08;Apache Echarts 核心开发、百度最美工程师&#xff09;聊天。她分享了一个 GitHub 排名的网站给我。http://git-awards.com/users?typecity&languagetypescript&cityShanghai我看了下 TypeScript star 数量的排名。哇噻&#xff01;厉害…

[原]排错实战——拯救加载调试符号失败的IDA

本文之前发表的时候有些问题&#xff0c;作为强迫症患者的我又重新编辑后再次发表。如果您已经看过&#xff0c;请忽略。望见谅。缘起 最近想借助IDA逆向一个函数。在windows下&#xff0c;调试器&#xff08;比如vs, windbg&#xff09;可以通过调试符号&#xff08;PDB&#…