Linux系统pipe理员的编码练习?

我正在为一家大公司(前10家公司)准备一个系统pipe理员(linux)angular色,而其中一个必备条件是像perlpython或Ruby这样的语言。 我有一个电话采访,涉及与面试官分享编辑,现在我可以期望在电话面试或常规面试中进行哪种编码练习?

我在大部分日常任务中使用shell,偶尔使用Perl和python执行更大的任务。 现在我不指望他们问

编写一个将AD用户同步到LDAP的脚本。

我不认为数据结构,algorithm或sorting问题适用于我的angular色? 你可以给我任何SysAdmin相关的编码问题的例子吗?

我不认为数据结构,algorithm或sorting问题适用于我的angular色?

你为什么不这样想? Mabe不知道O(n)和O(1)和O(log n)之间的区别,但是编写好的代码 – 脚本是代码 – 肯定需要对这三件事情有一个基本的了解。

当我为我目前的工作进行调查时,至less有人问我下面的问题(我可能已经忘记了一些),我被允许使用我select的语言。

  • FizzBu​​zz
  • Givin四点和一个坐标确定坐标是否在方形/矩形之内或之外
  • Givin的名单和testing成绩列表如何,你会发现谁得到了高分和平均水平。 testing可以重新进行,因此每个名称可能有多个条目,只计算其高分。 你如何find一个特定学生的高分?

一些系统pipe理员的具体事情:

  • 你将如何search一个100GB的日志文件来匹配$ Pattern的条目?
  • 给定一个包含名字,姓氏,部门和电话号码的1000人的列表,您将如何将这些人添加到$ Dirctory或$ 10 * nix服务器(不包括中央authentication系统)?
  • 如何将错误事件与3个不同日志文件中的相关日志相关联?
  • 如何将一个日志文件转换成MySQL数据库结构给你 ? 你将如何改变数据库的结构?

我不喜欢面试感觉像考试。 应该更多的是弄清楚这个人是否总体上适合这个职位和组织,而不是把受访者放在现场。 现在,当然,一个好的系统pipe理员必须能够在压力下掀起一个有用的脚本,但这不是同样的压力。

因此,与其提出一系列问题,我更倾向于聊一些脚本语言偏好,文化等等。 (对于Python,Perl或Ruby,这应该是特别有效的)。通常,这应该足以让受访者对select的语言或语言的参与感,这比能够回答一些精心select的语言更重要聪明的问题在纸上。

面试结束后,您可以随时要求样本脚本通过电子邮件发送。 (然后你可以谷歌的代码,看看它是否抄袭….)

根据我的经验,访谈中的系统pipe理员问题通常基于文件处理。 例如,“采取这个日志文件并提取唯一的IP地址和每个IP地址”是我在不久前接受采访时所要求的。

FizzBu​​zztesting仍然是最受欢迎的编程问题之一。

其他人提供了一些你可能会遇到的练习的很好的例子,所以我将把它作为处理。 不过,我想提一下,让代码运行使其可维护性同样重要 – 这在系统pipe理员的土地上比其他地方更重要,因为我们是倾向于编写脚本然后忘记的人关于它多年,直到有些东西被打破,不像应用程序开发人员花费大量的时间与他们的代码库密切接触,并可以习惯它的特质。 我已经雇佣了系统pipe理员职位,并且清晰度是我在代码示例中查找的。

遵循一致命名scheme的可识别variables名称; 充分的评论; 从代码中分离configuration(很多我的perl编程的同事有一个非常糟糕的习惯,用大的逗号分隔的内联string标量存储它们的脚本configuration,一个错误将一个警告转化为一个完整的杂乱的死); 等等。我衷心推荐Damian Conway的“Perl最佳实践”作为这方面的参考。 希望能帮助到你; 祝你好运!