Linux管理员必须全面了解什么?


16

我不是系统管理员,但是我对Linux,Unix,Windows和硬件有很好的了解。

Linux管理员最需要知道的最重要的主题是什么(在无需最多阅读手册的情况下即可进行修复,设置,解决的点;请检查任何发行版中常见的手册页)?

我要为此设置的焦点是从公司网络到服务器管理,它们可能具有某些相同的功能,而在大多数情况下,它们也会具有一些不同的功能。例如,您不会总是看到公司服务器的FTP服务器,但大多数时候可能会看到Samba。

我并不是说“必须阅读的书”或类似的东西,而是我作为Linux管理员日常生活中可能需要的最必要的功能。

喜欢:

  1. 内核,iptables
  2. Sendmail,Postfix,qmail,exim
  3. 鱿鱼,Samba,NFS,LDAP
  4. Apache,ngxix,lighthttpd
  5. vsftpd,proftpd
  6. 捆绑
  7. 每天面临的问题
  8. 您白天最常使用的功能是什么

这不是按顺序排列的列表,也不是最需要的列表。它只是说出了我想起的东西。

PS:我已经具备基本知识,但是我没有该领域的日常经验。我有服务器,建立了一些网络,等等。此外,我什至在其中的某些部分也有一些深入的知识。我只是想在这里更新它,就像我说的那样,它更像是LINUX SYSADMIN LIFE的每日列表。

如果您/专家们可以列出主题,例如记忆中最常用或最重要的字段,我将不胜感激。

如果您认为我的问题不合适,请让我知道它,我会自己删除它,或者如果您认为它合适但需要重新处理,请也让我知道,我会尽力而为。

Answers:


19

您确定要关心日常事务吗?我个人认为,您应该记住的事情是发生故障时需要做的事情,每个人都屏住呼吸以恢复网络。日常情况往往会根据您的Linux设备在网络上的运行情况而有所不同。

我认为有些技能非常重要。

  • 您必须只能使用cli工具(如ifconfig,route和ip)配置网络。

    • 几次客户打电话说他们的Linux机器出了故障。我让他们启动了livecd。但是服务器在没有DHCP的网络上(它是DHCP)。系统启动后,我需要引导他们完成网络和SSH的启动,以便我可以远程连接并帮助他们诊断和修复损坏的问题。
    • 您可能正处于无法访问Internet的地步,并且您将需要知道如何上网。
  • 我认为您应该知道如何使用tar,rsync或dd对系统进行完整备份。如果您不知道如何进行备份和还原,则几乎可以肯定不要接触系统。您确实还需要确保在进行系统更改之前已进行了备份。

  • 我认为您应该知道如何从服务器上的livecd访问文件系统。这意味着您应该知道如何激活LVM和基于软件RAID的驱动器,访问分区信息以及安装文件系统。

    • 如果服务器不可启动,则可能需要访问文件系统并修复某些问题。试图弄清楚如何在紧急情况下实际装载东西将是非常痛苦的。提前做好准备。
  • 您应该对引导过程足够熟悉,以便能够在引导时进行更改。大多数系统使用GRUB,但是您可能会遇到LILO。
    • 重要的是,知道如何引导到不同的运行级别,例如单用户。
  • 我认为您至少应该掌握如何使用tcpdump进行一些基本捕获并能够读取结果的工作知识。Wireshark中所有不错的GUI功能都很不错,但是如果出现问题,您实际上可能无法访问Wireshark。
    • 仅通过运行tcpdump,便能够快速识别并解决大量网络问题。

在网络问题和文件系统上提出的非常好的观点非常感谢答案:)
Prix

Are you really sure you care about the day-to-day things?mmmmm但是inst问题会在一个人的日常生活中发生吗?这将导致你使用实例特性的网络使用ifconfig DHCP像你说的......在什么水平的问题调试运行发生,等等
大奖赛

10
好点。同样,您应该了解vi编辑器的基础知识。无论您是使用joe,pico,emacs还是MS Word进行日常编辑,这些内容在救援系统中都将不可用,并且vi会有所不同;)
Sven

1
谢谢,我在找借口,花时间学习更多的:q!vi。命令
tovare

通常可以普遍使用nano和vi / vim,尽管我看到只有纳米的系统
Fahad Sadah 2010年

11

知道你有什么工具

您永远不会知道所有事情。但是您可以知道必须使用什么。您了解的工具越多,使用的功能就越多。如果您知道该工具是什么,它的作用以及在哪里可以找到有关它的更多信息,那么就足够了。

真正熟悉man页面。您不必记住它们,但是您应该知道在哪里可以找到您想要的东西。man在语法细节方面,Google页面比Google更好,因为安装在给定系统上的页面反映了与您所查看的系统相对应的各种古怪或特定于版本的信息。

如果您使用apache很多,那么我建议您学习apache配置语法。如果您使用它nginx,则改为学习。但是无论哪种方式,您都应该知道两者是什么以及它们有何不同。

系统工具

无论您从事哪种类型的sysadmin工作,都有一些工具可以帮助您。假设你知道的基本知识,如chmodmount等,这里有一些非常有用的工具,某些管理员不理解不够好:

  • 同步
  • sar / iostat (sysstat软件包的一部分)
  • setfacl / getfacl (大多数管理员认为chmod / chown是您所要使用的全部)
  • 卷曲和/或wget
  • iptables
  • 谁/最后/ w

命令行忍者

我想说,对Shell脚本的深入了解确实使将困难的事情变得简单而又容易。如果您必须查找语法,那么您根本就不会使用它,因此提前知道是至关重要的。

例如,假设您的目录中充满了mysqldump“ .sql”文件,每个文件代表一个需要导入服务器的数据库。您是否手动导入了全部35个?如果您相当熟悉Shell脚本,只需键入一个命令然后去喝杯咖啡,就会非常容易。

注意:为了便于阅读,我将其分为几行;如果保留分号,则可以全部放在一行中。否则,不需要在每行结尾处使用分号。

 for FILE in *.sql; do 
   NAME=${FILE%.sql}; 
   mysql -e "create database $NAME"; 
   mysql $NAME < $FILE; 
 done

另外,我建议您重新使用sed。可以将其视为在任何地方应用正则表达式的方式。http://www.grymoire.com/Unix/Sed.html

假设您更改了电话号码,并且需要相应地更新所有网页(并保存备份副本,以防万一。)

sed -i.bak 's/555-1234/555-4321/' *.html

知道如何正确地链接现有工具来做新的事情也很有帮助。假设您需要执行与上述相同的操作,还需要在子目录中进行搜索-

find public_html -name '*.html' -print0 | xargs -0 sed -i.bak 's/555-1234/555-4321/'

拥有一些经验也很有用perl。您可能不需要用它编写任何严肃的程序,但是它被设计为可以做很多事情,sed并且可以做很多事情awk,只是灵活性更高。

使用该-e选项,Perl可用于执行命令行魔术。与-p-n和和结合使用-i,您可以快速编写简单的过滤器来完成真正有用的事情。例如,假设您需要查找9月访问“ /admin.php”的每个人的IP地址:

perl -ne '
  /([^ ]+).*\[..\/Sep\/2010.*\] "GET \/admin.php / and print "$1\n"' < access_log

看到?那还不错。作为系统管理员,您应该知道如何做这些事情。


+1 @tylerl在这里提出了非常好的观点...我经常使用perl来确定我需要使用命令行执行的大多数操作,并且我可以向您保证这是必须的!您介意发布一些通常也会运行的问题吗?在阅读了Zoredache的回答后,我也想读一读有关这些内容的内容。非常感激 !
Prix​​ 2010年

9

我是一名Windows管理员,对Linux有所涉猎,因此无法直接回答该问题。但是,我认为一旦您对基础知识有了一定的了解,无论使用什么操作系统,管理员都需要知道的一个最重要的事情就是在哪里以及如何找到答案。


信息挖掘是我的最高技能之一。我在值班期间经常使用它。
sysadmin1138

好吧,我已经具备了基础知识,但是我没有该领域的日常经验,我有服务器,建立了一些网络,因此我什至在其中的某些部分甚至都拥有一些深刻的知识...但是我想通过每天实际用于Linux SysAdm的内容来增强这些知识,并从那里了解更多...我更专注于从其中获得每日生活列表:)
Prix

2

除了其他答案:

我认为您还应该了解处理流程的方式:

  • 基本知识/ proc中的内容
  • ps,top,vmstat及其一些更复杂的衍生产品(ntop,htop等)
  • 知道如何解释至少一种良好的监视工具(如nagios(可能会过大)或munin)的输出。

我认为您不需要精通sed(我知道我至少不需要),我可以轻松解决其中之一(grep,egrep,zgrep等)。但是,您必须了解基本的正则表达式语法。

我认为,如果您维护邮件服务器,则应该了解用于操纵和/或监视MTA(后缀或exim)和MDA(鸽舍,赛勒斯,信使)的基本命令。即使您只运行本地传送问题,即使您不运行它,也必须能够在MTA上运行基本的SMTP测试。

您应该了解使用(PAM,LDAP)认证系统的方式。您的密码存储在哪里?使用什么程序?哪些应用程序使用什么身份验证机制?


iotop :)如此出色的工具,我也无法忍受ps ...是的,您可以从命令行运行这些命令或诸如perl,python,php之类的语言来完成所需的工作。
大奖赛

2

您绝对需要了解几件事。

您需要对shell有一个很好的了解(它如何解析参数,它如何扩展通配符,哪怕是很小的情况)。

您必须能够在不运行X11的情况下编辑文件。

您必须能够挂载和卸载文件系统。

您必须具有快速吸收新信息的能力。因为这些是整个公司的服务器场崩溃时您所需要的技能,并且您只能通过简单的控制台服务器(在串行端口中是“控制台”)和/或非常慢的VPN连接(也可以进行任何基于X11的方式)进行访问痛苦)。而且它会发生,所以要为它做好计划。


2

给出的示例都是与服务器相关的绝妙答案。..但是,系统管理绝不是100%的计算机..我希望是这样!

在我们的情况下,您也必须与人打交道,这意味着纠结,诱骗者,承包商和供应商.. arg ^ n

知道如何谈论您需要/想要/要做的事情,将信息传达给其他人,文档的客户服务技能对于保持 sysadmin工作至关重要。

如果您想让您的项目得到资金和使用:如果您不知道如何索要钱,如果您没有数字/替代方案/ DR计划/报价/实施计划,那么尝试获取新服务器毫无意义。等等。.办公室政治是B ** CH,金钱总是:“紧” ..不管什么意思..它不影响高管公司的汽车,但是如果您可以,它将影响您的站点安全和标准化能力。不要给他们留下你的理由。

我要说的是要记住的最重要的一点:不要相信用户所说的话。接听电话时请记住这一点。无论他们说什么,您仍然必须自己弄清楚,因为它最终是您的屁股,而不是他们的屁股,而且他们通常不知道。仅仅是因为他们可以用一个时髦的词来充实您的老板,但这并不意味着他们实际上知道他们刚才说的话。

其他想法:

  • 请确保您有对UPS关闭一切下来足够的时间何时 电源发生故障

  • 监视,请确保知道它已经掉线了。

  • 备份备份如果您没有一个好的备份系统,则多用户系统容易超时。超时是不好的(不是为了您的口袋,而是为了您的预算和专业精神)。

  • 星期五或节假日前的任何时候都不要改变。周末时您会被打电话给您,必须进行修复,否则您的日子将会非常糟糕。

  • 尽可能地标准化和自动化.. 如果可以编写脚本,为什么不呢?

  • 弄清楚如何使用/安装服务台系统,让用户通过它记录呼叫,它将使您能够跟踪自己的活动,为上级组织提供激励措施,使您为所做的工作付出更多的报酬,并允许您记录您的答案(事实上的KB)..同时将进度告知用户。确保用户查询/问题不会在洪水中丢失。。(Spiceworks是免费的,还有许多其他问题)

  • 我购买了Limoncelli 的《系统管理实践》,我强烈推荐它。


1

Linux管理员需要全面了解文件权限,以及使用诸如susudochmodchown等工具,如何将用户添加到组或创建新用户,如何为某些用户赋予SSH特权或组。



0

学习sedgrepawk:作为Linux系统管理员,我每天要做的很多事情都是列出大量文件/计算机/用户/等文件。并将输入转换为另一组输出以供其他程序使用。

一个具体的例子是从例如bugzilla或RT中获取一台被破坏的计算机的列表,使用上述三个工具之一将我快速复制并粘贴到文本文档中的所有无关信息都剔除掉,然后输出一个空格分隔的列表,其中列出了需要SSH绑定的一堆节点。

另外,您绝对必须知道所使用的Shell的上限。通常,如果您必须剔除一堆陈旧的文件,则可能会遇到其中包含30k +文件的文件夹。rm *将不起作用,因为星号将扩展到包含超过30k条目的列表,并且您正在使用的Shell可能无法容纳该大小的列表。你解决这个问题的方法是xargs:不是的rm *,你会使用ls | xargs -i{} rm {},这工作。


0

作为系统管理员,我认为自己是一名数字医生(或者视具体情况而定,有时是世界一流的脑外科医师)。

当一切正常时,您将有足够的时间来提高自己的技能和所管理的系统。

当出现故障时,您将需要能够立即诊断问题并意识到如何解决。

因此,您需要学习/记住要管理的服务器和应用程序的基础知识(以及某些方面的内部知识)。假设您的公司托管了一个网站,该网站的根目录通过NFS提供。突然所有www节点开始报警,站点停止响应。怀疑什么?啊哈!NFS服务器刚刚停机,并且故障转移群集由于某种原因而无法正常工作。

要学习的另一个重要方面是您管理的服务器的基本负载。学习记住他们的平均负载,CPU使用率,内存使用率以及类似的东西。好的,您不必真正记住所有内容-使用Cacti或net-snmp + mrtg创建的图形可以提供很多帮助,但是如果您的传呼机发出有关服务器X异常的警报,同时服务台会打电话告诉您其他信息服务器或服务的狂热分子,您甚至可以查看日志,警报历史记录或图表,就可以将这两件事结合起来并进行修复。

还要做好最坏的准备:考虑一下如果整个数据中心由于停电而停电了该怎么办。在电力再次可用之后,您将如何启动所有内容?如果无法启动,您将怎么办?您将如何还原备份?或者,如果有人警告您刚入侵您的服务器的黑客,您将怎么办?(这类事情应记录为检查表,但也有一定的直觉)


并且,正如其他人所提到的,继续并编写应该(半)自动运行的脚本。学习和使用shell / Perl,它们确实是您最好的朋友,并且只需将几个命令通过管道连接在一起就可以解决非常复杂的问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.