我负责pipe理我们的生产服务器(邮件,networking,数据库都在一台服务器上)和我们的testing服务器。 两者都build立在Debian上。 但是,由于我对系统pipe理非常陌生,所以我只安装了更新,因为遇到了必须更新的内容,以便可以获得更新的function并修复错误。 这是一个相当特别的过程,我想让它变得更less。
所以我想知道如何知道他们在做什么的人处理这个? 多长时间在服务器上执行升级? testing和生产的升级过程是不同的? 你是否总是先升级任何testing服务器? 你会做所有的软件的全面更新,或者你只是安装选定的更新?
我运行apt-get update -qq; apt-get升级-duyq每日。 这将检查更新,但不会自动执行。
然后,我可以在观看时手动运行升级,并可以更正任何可能出错的地方。
除了维护修补系统的安全问题,我发现如果我在修补程序之间留下太长的时间, 我最终会得到一大堆想要升级的软件包 ,这不仅仅是升级一个软件包 ,每周两次左右。 因此,我倾向于每周进行一次升级,或者每天进行升级。 这有额外的好处,知道哪个包打破了你的系统(即,如果你只升级一对夫妇一次)
我总是首先升级不太重要的系统。 我还有一个“回滚计划”,以防我无法修复系统。 (因为我们的大多数服务器都是虚拟的,所以这个回滚计划通常包括在升级之前拍摄一个快照 ,如果需要,我可以恢复)
话虽如此,我认为在过去的四年里升级已经打破了一两次了,那是在一个高度定制化的系统上 – 所以你不必太太偏执狂:)
除了之前的答案之外,还有一些更具体的Debian的东西:你应该订阅debian-security-announce和debian-announce和/或查看Debian安全页面 。
假设你正在运行Debian的稳定版本,大多数补丁都是安全的或与bug有关,这意味着在任何给定的软件包版本之间不会有太多的重大变化。 根据debian补丁策略,补丁在维护者移到稳定分支之前也应该进行一段时间的testing。 显然这不会停止补丁,但在大多数情况下应该阻止他们。
谨慎的做法是确保您的testing服务器保持最新状态,并且任何影响您和服务器的错误的软件包都应该保持最新。 所有对它们有安全build议的软件包,只要知道补丁稳定就应该立即更新。
Debian通常是一个非常稳定的操作系统,而不是你应该过度关心破坏,但总是读取更新之前将要更新的内容,并留意任何看起来很奇怪的事情。 我在/ etc / dir上也使用了VCS,以确保可以通过'git diff'命令查看任何configuration文件的变化。
我做一个干运行(第一次),看看会有什么更新。 有时,库(本例中称为libfoo)会改变它们的API,这会破坏我们自己编写/安装的程序。 如果一些关键的图书馆被更新了,我会抓取资源,并在更新之前尝试重build我们的资料。
我也检查一下,看看我们是不是跳到一些公共服务的中间版本,比如apache等等。我宁愿呆一年,也不会遇到随机破坏,除非更新是关键的。
如果你是一个系统pipe理员,你应该从Secunia这样的站点提取RSS提要,如果你的发行版本要推出一些补丁,应该让你提前知道。
永远不要盲目升级/更新。 不幸的是,知道什么是破坏的任务落在你身上,而不是你的发行包pipe理器,特别是如果你的系统支持程序员。
在我工作的地方,我们有一个非常广泛的过程,涉及使用称为PatchLink的软件来通知我们最重要的安全相关的更新,并且我们在testing之后,在逐个包的基础上应用它们。 我们有成千上万的服务器。
如果你只有两台服务器,那么这个过程应该简单得多。 虽然我不认为做一个“apt-get update / upgrade”是最好的select。
我将监视您正在运行的软件的修补程序,并根据这些修补程序中的修复内容来决定何时进行升级。
既然你有一个testing服务器,显然,在应用它们之前总是testing一下更新。
在Debian上,我安装cron-apt,并编辑它的configuration文件,如果有任何更改,请发邮件给我。 这样我得到通知,如果有我的系统更新,并手动更新
我喜欢cron-apt来实现这个过程的自动化,但是作为@dinomite关于更新的另一个问题指出,专门configuration它来自动化安全相关的更新是一个非常聪明的想法 – 你可以手动更新你需要的东西。 我一直在使用cron-apt进行所有更新,但是根据他的回答实际上改变了这个。 如果你喜欢,你应该把他的答案,而不是这个。
跟cron-apt一样,你应该看看无人值守升级包http://packages.debian.org/lenny/unattended-upgrades 。
它非常易于configuration,并使您能够自动下载和应用安全更新,但留下其他更新以进行手动升级(或根据您的判断升级所有内容!)。
官方的Ubuntu服务器指南,有一个合理的详细部分,涵盖了无人值守升级包的使用https://help.ubuntu.com/9.04/serverguide/C/automatic-updates.html
注意:根据您的警惕/偏执级别,您可以先在一组testing服务器上进行滚动升级,然后如果没有问题,请更新您的生产套件,尽pipe我本人没有遇到任何安全更新问题破坏破坏(敲木头)…
还有一个configuration选项,可以将每个安全更新的结果通过邮件发送给您。 此外,如果在更新期间出现了任何对话或交互式提示,那么需要由系统pipe理员手动调整的提示,也会提到这些提示。
我个人closures了自动更新,并且不会定期在我的环境中对服务器上的软件包进行任何更新,除非:(a)我的系统上有一个重要的CERT顾问软件包; (二)出于具体原因需要升级个人套餐; (c)操作系统或软件包正在达到周期结束,将不再受到支持,我们需要继续得到支持。 我的理由是升级不知道什么是改变或为什么留下太多空间的东西打破。 我一直在做这样的事情14年,它运作良好。
除了上面提到的东西,你应该使用某种监控工具(Nagios或者漂浮你的船)来提醒你更新。
至于多频繁:只要有更新可用!