在Linux中使用strace跟踪系统调用

成为系统管理员就是要了解维护机器背后的情况。 当服务运行或执行命令时,真正发生了什么? strace是一种可帮助系统管理员掌握程序与程序在其下的操作系统之间的交互方式的工具。

要了解有关strace的更多信息,我们与Alex Juarez联系,后者将在SCaLE 14x发表演讲您的系统调用和您:使用strace的简要探索

亚历克斯(Alex)是Rackspace的首席工程师,他在该公司担任培训和指导人员,以支持客户的管理员需求。 作为RHCA和RHCI,Alex非常喜欢为每个工作找到合适的工具,并帮助其他人做同样的事情。 在这次采访中了解有关strace,其用途以及如何学习更多信息的更多信息。

Interview

简而言之,strace是什么? 为什么它对Linux管理员来说是有价值的开源工具?

Strace是用于拦截从您的应用程序到Linux内核的系统调用的工具。 我发现strace对于系统管理员而言是无价之宝,主要有两个原因。

  • 首先,我们并不总是有可用的应用程序源代码,但我们可能仍需要知道应用程序在做什么。 这可以是打开文件,分配多少内存甚至是应用程序反复崩溃的原因。
  • 其次,即使我们确实有代码,成为系统管理员也不意味着成为开发人员。 我们可能不知道如何遵循代码。 我发现查看系统调用而不是代码行更具描述性

管理员在现实世界中如何使用此工具的示例是什么?

何时可以使用strace的真实示例经常出现。 实际上,它是尝试解决问题时都可以使用的非常通用的工具之一。 我的演讲中有几个示例,但是我最喜欢的一个方法是使用strace来显示在服务器上启用.htaccess文件时Apache Web服务器的行为。

一旦弄清系统调用流程的过程,找出这些含义的最佳方法是什么? 换句话说,您如何解释strace的输出?

解释strace的输出是我们在演讲中讨论的内容之一,因此我不想付出太多。 简而言之,有人可以通过两种方式来学习更多有关如何解释输出的知识。 第一种方法是系统调用具有自己的手册页,其中包含完整的信息。 第二种方法是通过编写非常小的C程序并在它们上运行strace来学到更多。 您可以写出小的C程序来读取,写入或打开文件,并查看这些函数转换为哪种类型的系统调用。 对小型程序进行编码并在其上使用strace将带您进行学习之旅。

除了参加您的演讲,对于想了解更多信息的人来说,什么是最佳资源?

我认为获得更多经验和学习更多知识的最佳方法是跟踪所有内容。 完成日常使用的分级命令练习,并分解打开的文件和写入的文件。 一些程序将直接修改文件,而其他程序可能会在将数据复制到原始文件之前编辑临时文件。

更进一步,编写一些代码并跟踪它。 在您使用的功能和它们进行的系统调用之间建立关联。

最后,您今年对SCaLE感到特别兴奋的是什么?

我对SCaLE的工作感到非常兴奋。 我认为我对各种主题感到特别兴奋。 我几乎对所有SysAdmin,Security和Kernel跟踪都非常关注。 周四,我将在UbuCon上度过一些时间,周日,我将在教育版面上度过一些时间。

翻译自: https://opensource.com/business/16/1/scale-14x-interview-alex-juarez-rackspace

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值