我负责管理一个小型办公室网络以及几个主要运行 Debian 和 Ubuntu 的工作站。有两台服务器:一台数据库和打印服务器,一台备份和文件服务器。
我对这个领域的了解还比较少,对 Linux 的了解还不足以让我在某种程度上受益,我想知道我可以使用/掌握哪些软件工具和任务/习惯来学习这个领域,并在学习过程中取得成效。
我不需要知道什么是最好的,只需要知道新手系统管理员可以使用什么作为入门包来学习,并以此为基础成长为合适的系统管理员。
我需要的是一些基本的入门工具,以及我需要定期做的事情,例如:检查哪些日志、何时监控以及监控什么、从哪个“正确”的地方开始以及我可以根据需要添加哪些内容。
答案1
1
监控业务关键流程[例如 - 数据库是否正在运行并响应简单查询],操作系统的基本参数[可用磁盘空间,平均负载]。您可以使用纳吉奥斯或者扎比克斯例如。
2
收集统计数据以建立一些基线。将来,这对于容量规划很有用。您可以使用穆宁,扎比克斯,仙人掌ETC。
3
运行计划的自动备份,将其中一些存储为离线、异地备份。监控它们是否成功,不时手动检查是否可以恢复关键数据。你可能需要使用备份忍者精心策划或兹曼达,但还有更多有用的工具。
4
文件。为了你自己好。不要以为缺乏文件就会增加你的工作保障。由于缺乏文件,第一个受苦的人就是你自己,你可能会很快忘记事情。
5
来自其他随机事物:
学习一些脚本语言 - 也许你已经知道一种了?perl/python/php 可用于自动执行任务,在许多情况下,它们比 bash 更适合执行更复杂的任务
答案2
系统与网络管理实践您应该从 Limoncelli 等人撰写的《》开始。技术会不断变化(并且可以根据需要轻松通过 Google 搜索),但书中的信息是永恒的(也是无价的)。
答案3
一些基本的入门工具
谷歌。不,说真的。Google 是系统管理员的梦想成真。没有比这更好的方法来利用互联网上的大量信息了。不要局限于只搜索“Linux 初学者”;如果您有要完成的特定任务,请在 Google 上搜索该特定内容。您通常会找到比您需要的更多的信息,而且对于初学者来说,很多信息看起来就像是另一种语言,但边做边学是一种快速掌握的好方法。
Tab 键补全。Linux 命令行允许通过制表符完成所有命令、目录树、目录名和文件名。
手册页。每个命令和许多系统配置文件(/etc/fstab、/etc resolv.conf 等)都有手册页。只需输入“man command_name”或“man file_name”即可查看您要查找的内容是否有手册页。哦,还有“q”退出手册页。
SSH。访问 Linux 系统的最佳方式之一。可能这如果您无法物理访问系统,这是最好的方法。
屏幕。Screen 是一个很棒的小应用程序,它可以让您将一个终端变成多个终端,让您将程序从您的操作中解放出来/放到后台,并且让您让程序继续运行以便您稍后再回来。
纳米。您在上面提到您已经使用过它,但我只是想发表一下我的看法并表示我同意。Vi 和 Vim 等都很好,但我喜欢 Nano 的简单性。它就像 Linux 世界的记事本。
查找并 Grep。查找功能非常适合搜索为了文件,Grep 非常适合搜索在文件。两者都可以以非常简单的方式使用,也可以以非常复杂的方式使用,但无论哪种方式,两者都非常有用。
须藤。让你无需成为 root 即可像 root 一样操作。非常有用。
另外还有一些我将在下一节中提到的其他工具……
你需要定期做的事情
监控您的系统。监控磁盘使用情况(df 是一个很有用的命令,du 对于特定目录也很有用),监控正在运行的进程和任务(通过 ps 命令和 top 命令),监控登录到系统的用户(users 和 who 命令会告诉您这些信息),并监控网络使用情况(cacti 等应用程序非常适合)。如果您碰巧可以访问 X Windows 环境,我总是发现 GKrellM 是一个非常有用的一体化系统监控工具。
备份。出于对 Tux 的热爱,备份。备份配置文件、备份主目录、备份应用程序数据。备份。即使您所做的只是将数据从服务器直接复制到另一台机器上的 CIFS/NFS 共享和外部硬盘上。是的,您应该保留每个备份的两个副本,并且永远不要放在同一个媒体/系统上。将其视为备份的备份。
检查您的备份。定期检查以确保您可以将备份中的数据恢复到您的系统。空白/损坏/不完整的备份毫无用处。
使用您的日志文件。Dmesg、/var/log/messages 以及 /var/log 期间的几乎所有内容。如果某些东西无法正常工作而您不知道原因,日志可能无法提供答案,但它们绝对可以帮助您找到它。而且 /var/log 中的日志和目录命名合理,因此找到正确的日志应该不难。您不需要不断监视每个日志文件,但密切关注它们将有助于您保持系统健康和安全。
保持你的系统更新。不要让您的软件连续几个月不更新,因为当配置文件语法或依赖项发生变化时,这会导致很多麻烦和破坏。不同的发行版有不同的更新程序(apt-get、yum 等),但无论您使用哪一个,都要学习并定期使用它。
保证你的系统安全。使用 iptables、PAM、hosts.allow/hosts.deny 等类似工具来防止不必要的访问和使用您的系统。
从未停止学习。继续我之前说过的(边做边学),你应该研究一下虚拟机。下载 VirtualBox(或者如果你有 VMWare 许可证就更好了)并为自己制作一个 Linux 虚拟机。你可以选择任何你想要的发行版,但显然选择你在环境中使用的发行版可能是最明智的选择。在虚拟机中玩一玩……像沙盒一样使用它。设置东西,打破事物,调查,学习。沙盒虚拟机的美妙之处在于它发生了什么并不重要。如果你完全搞砸了它,只需制作一个新的。或者在设置后保留原始副本的备份,并在需要时重复使用。
正如本主题中的其他一些帖子提到和暗示的那样,这些列表实际上可能几乎是无限的,但希望这能让您有一个良好的开端。
答案4
老实说,Linux 系统管理并不是一个你可以轻易进入的领域。
如果你必须不过,关于这个主题也有一些不错的书。O'Reilly 有两本书(Linux 网络管理 和 Linux 系统管理),应该可以帮你入门。
就我个人而言,如果我是你,我会花几天时间摆弄不同的发行版,安装软件,设置 Nagios/Cacti/Apache2/SSH/NFS 类型的东西,也许还会学习某种脚本语言(我自己使用 Perl;但我的许多管理员同事更喜欢使用 Python。不过,你想学什么真的取决于你自己)。
一定要学会命令行。不要依赖图形工具。
学习 vi。即使你只学得足够好,可以进行基本的编辑,那也没关系——但学习 vi 很重要,因为有时你会被困在没有 Vim/Nano/Emacs 的系统上。在这种情况下,你会很高兴你花了一两天时间学习 vi。
如果您需要任何帮助,请随时给我发电子邮件(我的电子邮件是[出于安全原因被删除]) - 我很乐意在 ServerFault 之外为您提供帮助。