可能重复:
什么是初学者应该知道/学习系统pipe理员的工作?
我很快就要从大学gradle了,现在正在寻找工作机会。 有一个我对Linux系统pipe理(PHP,MySQL,Apache Webserver,BIND,bash,postfix,当然还有一般的系统维护和安全性)有很大的兴趣。
然而,在我的实习过程中,我的大部分工作都涉及Hyper-V虚拟化和Windows,而且我没有得到太多的Linux时间。 在我的业余时间,我通常是一个Windows用户,只有非常基本的Linux知识。
什么样的知识和技能,你会说,一个新的初级职位申请人需要摆在他真的准备好工作(和面试)之前? 从书籍到电子书,教程,一般技能描述,命令,网站,博客……的任何消息都会帮助我。
帮助我成为一名更好的Linuxpipe理员,为这次访谈做好准备! 非常感谢 :-)
编辑:正如有些人所build议的,我会更新原来的问题:我说我是一个问题标题的初级,这是指我正在申请的工作(没有经验,几乎没有机会,那么明显是会find一份高级工作)。 我的Linux知识可能比我让你们明白一点, 我正在通过“如何设置DNS服务器?” 阶段,DNS,DHCP,networking服务器等,我已经设置了几次之前。
我正在寻找更高级的知识,白天工作中需要的东西,或者在面试中可能会问到的问题。 我想尽可能做好准备。
感谢迄今为止的input!
对于初学Linux的pipe理员, ServerFault中已经有了大量的信息(Questions / Posts):
另外 ,我会build议你找一台旧电脑,并在上面安装Linux。 玩它,设置一个防火墙,DNS,DHCP上启动和testing的东西。 你甚至可以在虚拟机中设置它,并在其中进行操作。 没有什么比帮助你获得真实的体验更好的帮助你了。 决定使用它,并尽可能多地使用它。 当你遇到问题的时候提问(先研究一下),这就是我们来这里的原因。
考虑规模,审计跟踪和退出。
在现实世界中,你需要经常做东西,而且你经常需要做很多的服务器。 所以脚本和自动化变得重要。
严谨程度往往比你在家使用的要严格得多。 因此,您需要考虑如何logging您的更改(最好是确定是否打破了服务的更改),以及如果需要可以将其退出。
例如,知道如何build立绑定作为主和奴隶是好的,但在我的工作,我们主持了7个绑定实例的数百个域。 一个拥有奴隶的主人,奴隶本身就是五个奴隶的主人。 我们使用make和M4macros为它们生成named.conf,用ssh将它们推出,并用RCSloggingnamed.conf和一些区域文件的变化。 更大的区域文件是从具有CGI前端的数据库生成的。
没有什么比这更令人惊讶的了,named.confs大部分都非常简单,只有很大一部分。 与较大的自动处理区域文件相同。
我试图做的一点是,当你在一个真实的工作环境中工作时,你需要能够扩展,做什么,你需要能够跟踪变化,你需要考虑退出。
我会熟悉像kickstart这样的自动化构build工具,因为这是一些工作,有些地方给了后辈,因为它可以让他们与服务器一起工作,了解他们如何在组织中configuration和configuration,而不必让他们在活prd服务器。
除了基础知识之外,还有几个领域你应该进一步调查:
设置一个邮件系统,可以为数百个用户提供足够的性能,良好的垃圾邮件过滤,安全性,备份解决scheme,networking邮件访问等。
学习和尝试备份:select一个好的策略,实施它,使其在尽可能有效(每个人都想要备份,但不是每个人都想支付额外的成本)。
服务器监控:再次,有一个好的策略和实施它,所以你可以监控多台服务器,目标是能够预测问题,而不是在发生时修复它们。
安全性:审计,locking资源,监视使用情况,复杂的防火墙情况。
…
基本上,任何推动信封的东西,都会为自己设定一些东西,为组织设定一些东西。
除此之外,我相信要成为有效的高级pipe理人员,您需要了解公司的工作内容,员工的工作方式,工作内容,以及技术如何帮助用户提高效率和公司的底线。
信息技术并不存在:试图find更好的方式让人们进行协作并快速安全地访问数据,这是一个好的IT组织。
因此,这不仅仅是能够设置邮件服务器或安装安全产品,而是利用您的技术知识和经验来帮助您所从事的业务。
扩大你的视野,不仅仅是IT技术,将有助于你走得更远。
真正学习的唯一方法就是尝试和“玩”它。
– 在家里安装Linux服务器。
– 安装Apache,尝试启用PHP,Perl,Bugzilla,WordPress和其他一些应用程序
– 安装后缀,尝试启用tls支持
– 安装named,启用dnssec,在家里build一个小networking。
这些只是build议。 当你尝试设置他们,谷歌手册,想法等
– 学习脚本(至lessbash和perl)使你的工作自动化。 所有优秀的pipe理员都知道如何自动化他们的任务
我讨厌这样说,但是你可能高估了你的知识。
我在企业中发现,每个环境对于使用什么,每个服务器是如何configuration等都有非常严格的规定。
我最初通过在我自己的时间里设置各种服务器等来学习,但是很快发现它给了我们太多的自由。 企业环境被configuration为最大限度地减less损害,比他们实现有趣或有用的function更多。 更高一级的pipe理是为业务需求提供一个已知的,明确的解决scheme。 在较低的层面上,这是实施它,这往往是更接近你所期望的猴子工作,因为一切都应该预先定义。
像在家里发现发行版一样有用,您将需要在适当的环境中适当的时间。 看看你是否可以find一个本地的LUG,你可以与高级专业人士交谈并学习。 了解他们的环境,程序等
就我个人而言,我发现能够运行apache真的不值得,因为它并不那么难。 关键在于按照要求确定安装范围,并根据需要正确地获得服务,不多也不less。
雷诺上面的build议也是很好的学习要点,我只是认为了解function只是解决问题的一小部分,而了解业务驱动因素则更为重要。
也许我低估了自己的知识,或者以低估了自己的知识的方式提出了我的问题,但是又一次:我正在寻找更多我需要的高级知识,设置Web服务器,数据库,dns,dhcp和防火墙是我以前做过的,只是需要重复才能让它在我的记忆中变得新鲜(尽pipe它们非常简单,我几乎不需要去重复这些)
l0c0b0x的链接肯定有帮助,我将阅读大部分我今天晚些时候通过它find的东西,但更多的是欢迎。
如果可以的话,花点时间做这个: http : //www.linuxfromscratch.org/
恕我直言,这是最重要的事情,你可以做的事情:
他们之间很less,但他们在外面。 相信我。
学习,宝贝,学习。 把自己附在他或她身上,注意那些小东西。 他们如何build立他们的工作stream程? 他们使用什么stream程? 他们使用什么命令别名? 任何你可以适应你的使用?
阅读Maurice J. Bach的书。 这不是Linux相关的。 这甚至不是现代的。 这是我读过的最好的整体“这是UNIX如何工作”的书。 回到现在,这本书是关于如何实际实现UNIX的一本不错的书。 到目前为止,它已经很好地解释了UNIX如何以及为什么如此工作。
这本书假设你可以理解一些C.
UNIX操作系统的devise(Maurice J. Bach,Prentice Hall PTR; 1986)
我有精装本,我已经读了几遍,然后把它们借给每个想要深入了解Linux / UNIX的朋友。 正如出版商所说:
这是描述UNIX系统V内核复杂工作的第一本,也是最全面的书 – 内部algorithm,组成UNIX操作系统基础的结构,以及它们与编程接口的关系。 系统程序员将更好地理解内核是如何工作的,并且能够比较UNIX系统中使用的algorithm和其他操作系统中使用的algorithm。 UNIX系统上的程序员将更深入地了解他们的程序如何与系统交互,从而编写更高效的程序。
让我们面对这个问题,一段时间以后,一个好的系统pipe理员必须很好地掌握系统的组装方式,以及如何与之交互。
接下来在此之后的有用性可能是TCP / IP插图卷。 1.不完全了解,但要知道如何networking工作在一个足够低的水平。
除非你想玩游戏,否则停止使用Windows(至less一段时间)。 用一些网页(或更好的CMS)设置自己的networking服务器,并使用一些数据库。
我build议你尝试安装Archlinux。 不像从零开始构buildLinux那样硬核,而是学习Linux系统的内部。 他们有一个很好的安装指南,解释了基本的Linux设置和pipe理。 然后,围绕维基浮动进入内部细节。 在虚拟机中执行此操作,并确保拍摄快照以便能够回滚并再次尝试。
有很多免费的,开放的资源用于Linux知识。 你已经特别提到了bash的知识,而最好的方式是通过使用bash和shell脚本来实现。
除了人们推荐的其他书籍和链接之外,我还build议获得一些真正的Linux时间。
获得更多时间的好select是双启动,运行笔式Linux或运行便携式ubuntu – 如果你想要更多的经验,没有什么好的理由不花时间在Linux上。
有一次我被告知,很多招聘信息都会在广泛的主题上列出知识需求,而不是因为他们真正想要的东西,而是希望看到未来员工的情况。
停止使用Windows并开始使用* nix。 另外,命令行是你的朋友
另外,如有疑问,请咨询distros wiki