今天,Linux的发行版很是地容易安装也很是容易入门。就算是一个缺少经验的系统管理员,创建必须的服务并完成可运行的程序一般也能够在几小时内完成。mysql
很不幸,容易入门反而掩盖了须要作的维护工做,这些工做是保持系统稳定和使系统长期处于一个良好的工做次序中所必需的。一个单一的服务器一般能够在没有人工干预的状况下运行很长时间。可是前提是全部其余的位和块必需被提早配置。sql
关于这个列表,最糟糕的事情是你可能已经几个月或几年没有作这些事情了。你忽略这些事情中的任何一件,它们都会在最糟糕的时候回来做祟:好比流量高峰期,硬盘驱动器崩溃,或******的时候。Linux系统管理员天天都应该作一些什么工做?咱们这就为您来总结一下。数据库
系统管理员应该按期完成的九件事——配置管理apache
我用配置管理来开始,是由于它和这个列表中的其他项有很大的不一样。这一项对单一的服务器并不重要,可是若是你有许多系统,这一项就相当重要了。Puppet或Chef这样的配置管理工具容许你编写‘recipes’来定义服务器应该如何的被放置在一块儿。那些‘recipes’能够在每一个服务器上运行产生一个一致的、容易复制的安装程序。这可让你当即启动一个系统的新拷贝,能够给你的安装提供极大的自由度。安全
配置管理是作了,可是,却给服务器安装程序添加了必定的初始化复杂性,因此若是你胆子小,不用也罢。不过,即便只有两个或三个服务器,好处也是至关巨大的。ruby
系统管理员应该按期完成的九件事——备份服务器
这一项是显而易见的,大多数的系统管理员都会在这方面作点工做的。若是你没有一个可靠的备份策略,你如今须要立刻调整它。哪怕只等一天,后果极可能就是是灾难性的。同时请确保你正确的作了备份,由于备份很容易作错。Mozy,Carbonite,Backblaze等工具的At-home备份已经取得了很大的进展,可是相似的Linux解决方案还远没有成熟。Rsync ,tar,和相似的脚本工具一直很受欢迎,而且也是可行的替代方案,可是必需要当心,以适应像MySQL数据库那样的特殊状况。每一个人的备份需求是不一样的,因此不管你选择什么解决方案也要仔细研究它潜在的不足。你选择的解决方案应该:ide
◆按期运行工具
◆保持多轮的备份测试
◆自动的删除旧的备份
◆在你的如今的操做系统之外存储备份
◆保持和你的原始数据同样的安全性
◆合并全部的关键数据,关键的配置文件(更换服务器之后启动和运行系统可能会须要的任何东西),和最近的日志
系统管理员应该按期完成的九件事——测试你的备份
紧跟着备份计划的是测试它。这意味着按期检查备份是否一直在作,产生的文件是不是有效的而且是否没有被损坏,以及他们是否包括你须要的全部数据。一个好的经验法则是若是你的备份每30天一轮换,那么你应该常常的从新检查他们。这里自动化工具能够帮一些忙(自动地检查备份文件是不是最新的,是不是合理的大小而且是否有效)。尽管如此,没有任何东西能够替代人的眼睛……不然,当你发现你并无备份那些你认为你已经备份的数据时,就只有哭的份了。
系统管理员应该按期完成的九件事——日志轮换
在最近几年,Ubuntu,RedHat和其余主要的发行版针对他们提供的软件包的logrotate的运行和配置有了很大的改善。因此你的apache和mysql日志也能够被合适的轮换(默认设置是至关合理的,虽然可能并非你但愿的方式)。可是你添加的“额外”的东西,例如Rails应用程序,须要创建它本身的logrotate条目。缺乏这个步骤会在最不合适的时刻引起无数的“硬盘驱动器已满”的服务器错误。固然,一般你甚至不知道你的日志引起了这个问题。针对这种状况,资源监视才是关键。
系统管理员应该按期完成的九件事——资源监视
跟踪CPU,内存的使用状况,硬盘空间,带宽,等可让你更好的洞察你的系统状态。当流量增长的时候,你能够比较你的增长的内存或IO使用状况,来提早规划你的“scaling”。RRDTool/Munin,ServerDensity和Cloudkick是观察这些随着时间的推移而变化的数据的很好的选择。若是你选择的工具包括对意外的变化(失控的进程,驱动器已满等)的警报功能,你将会领先任何潜在的问题一步。
系统管理员应该按期完成的九件事——进程监视
对你的网站来讲,让你的Apache,MySQL和相似的进程一直处于运行状态相当重要。有几个很好的工具,例如Monit和God,能够帮助你确保你的进程一直处于运行状态。经过检查进程的响应性,打开的端口,或进程id那些工具能够从新启动一个已死的服务或在一个失控的进程使你的整个系统崩溃前终止它。配置这件事的规则是个老大难问题,可是当一切都作好的时候,能够节省大量的凌晨3点钟的宕机时间。
系统管理员应该按期完成的九件事——安全加固(Hardening)
Hardening包含了许多不一样的操做,这些操做可使你的stock系统更安全。许多简单的操做常常会被遗漏。你真的知道那些正在运行的进程中的每个都作了什么吗?在你的系统上,哪些额外的端口和服务被打开了?有合适的PAM模块载入来进行安全认证吗?又一次,RedHat和Ubuntu走在了时代的前列,他们提供了安全stock系统,并确保最多见的软件包遵照正确的安全协议。可是,这并不意味着你能够跳过这个步骤。
系统管理员应该按期完成的九件事——安全更新
在一个基于apt或RPM的系统上,安全更新是很容易执行的。这个过程的陷阱是很难知道升级包是否会在你的栈里引起某些类型的错误。为了确切知道升级包将对你的系统产生怎样的影响,拥有一台一样配置的模拟服务器是惟一的好办法。幸运的是,由安全更新引起的麻烦是十分罕见的。修复一个更新的兼容性问题,须要花费一些停机时间,这个风险要比你的系统上的一个已知安全漏洞被利用的风险小不少。因此,不要让“not knowing”阻止你进行正确的升级。最后,不是每个安全漏洞都能立刻得到一个安装补丁。查看CVE字典上的可用警报,可让你在补丁可用前,在保持你的系统安全性方面争取主动。为了确保一切都平滑的运行并保持最新,在这方面真的没有什么能够代替人的肉眼。
系统管理员应该按期完成的九件事——日志监视/安全扫描/***检测
这个列表中的全部项都是最低限度须要完成的。它们很容易被忘记,直到你的系统已经被***为止,你可能都不会想起它们。对异常活动,******和其余恶意行为的持续扫描,对于帮助阻止或减轻***来讲,是十分重要的。
总结
这固然不是一个完整的列表,可是它也是十分普遍的,许多开发者和系统管理员只是没有时间、兴趣或知识来处理它们。更糟糕的是,许多开发项目被移交给了客户,而一旦技术团队迁移到另外一个项目上,这些客户就没有能处理这些事情的职员了。