有没有一种规范的方法来找出yum update系统上次运行的时间?
我们的设置是我们有运行自动更新的暂存服务器,如果它们不会发生故障,我们将大约每月手动更新一次我们的生产服务器(关键更新除外)。(我说手动,理想情况下我想手动触发所有更新,但这是另一个问题)。
但是你会很忙,任务会延误等等。所以我想设置一个 nagios 支票,如果我们离开它太久就会开始打扰我们。
搜索网络并没有让我走得很远。浏览系统,到目前为止我发现的最好的东西是这样的:
grep Updated /var/log/yum.log | tail -1 | cut -d' ' -f 1-2
Run Code Online (Sandbox Code Playgroud)
这给了我类似的东西Mar 12,然后我可以将其转换为日期。关于日期是今年还是去年有一些小问题/var/log/yum.log.1,如果在 logrotate 后立即检查,我还需要检查。但这只是脚本细节。
这当然可以被单个包的更新而不是一般更新“愚弄”。
那么有没有更规范的方式来查看何时yum update运行?
编辑:我现在已经编写了一个 Nagios NRPE 插件,它使用了我在问题中提出的想法。你可以从https://github.com/aptivate/check_yum_last_update获取它
请原谅这个相当简单的问题。
首先,我不是系统管理员,我对 Linux 的经验有限。
大约 3-4 个月前,由于各种原因,我在工作中设置了一台 CentOS 服务器。我们将它用作网站的开发服务器(我们的客户可以访问)、Subversion 服务器,并且我们也在那里托管了一个 wiki 用于内部通信,因此它已成为我们非常重要的工具。(可能比我设置它时想象的更重要!)
我注意到 Yum 想要将大约 250 个包更新到 repo 中的最新版本。
由于服务器对我们来说运行良好,我是否应该冒险更新这些软件包?当我更新所有内容时,安全风险是否大于服务器崩溃的风险?
我应该指出,虽然我对所有内容都有备份,但将所有内容设置成现在这样需要时间,而且我目前没有太多空闲时间在工作!
如果建议要更新,是否有任何最佳实践可以传递,以使该过程尽可能安全?
提前感谢您的任何建议。
更新 - 感谢大家的回复。如果我有足够的代表来为每个人投票,我会的。;) 我决定对硬盘驱动器进行鬼影并进行更新。不幸的是,目前无法获得全职或兼职系统管理员,所以我只需要尽可能地处理这个问题!
我正在做一些域名的工作。我正在更新它们。通过使用dig我可以查询我们的名称服务器,我可以看到正确的名称已更新。但是我们的办公室 dns 缓存仍然显示旧名称。昨天我将 TTL 设置为 10 分钟,所以我不必等待很长时间。但是有没有什么办法可以欺骗office的dns缓存来更新呢?我可以做任何偷偷摸摸的小技巧让事情变得更容易吗?
更新让我们假设我无权访问服务器,并且无法重新启动它?还有什么我可以做的吗?
我有一个需要作为服务帐户运行的计划任务。服务帐户的密码每 100 天重置一次,因此我需要更新计划任务的密码。
我无法弄清楚如何做到这一点。当我在计划任务的属性中选择“更改用户或组”时,我没有收到更新密码的提示。
此计划任务将部署在 Windows Server 2008 R2 和 Windows 7 上。
我正在尝试使几个 ubuntu 框保持最新并打补丁(10.4.2 LTS),我得到的一个建议是设置无人值守升级(https://help.ubuntu.com/community/自动安全更新)。
过去我一直反对设置自动更新,主要是因为它会在更新过程中破坏某些东西的偏执狂。但是,现在我开始质疑这有多有效(以及与可能未打补丁的服务器相比,它的风险有多大)。这是一个明智的想法吗?
我们也在设置 Puppet,但是创建模块/将服务器迁移到 Puppet 似乎还有很长的路要走。
作为我工作的一部分,我管理几十台 CentOS 5 服务器,使用 puppet 进行主要设置。我们大约有一半的服务器具有用于托管各种 django 站点的标准化设置,而其余的则是应用程序的大杂烩。
我正在逐步整理我们的托管实践,现在我已经开始研究如何在操作系统级别管理安全更新。我担心只是有一个 cron 工作做一个,yum -y update但也不希望必须及时检查每个服务器并检查每个有可用更新的包,因为这需要一段时间。
所以我想知道是否有任何好的捷径或工作实践可以最大限度地减少所涉及的风险并最大限度地减少我需要花费的时间。或者换句话说,是否有任何工具或实践可以使大量工作自动化,同时仍能提供控制权。
到目前为止我决定的步骤:
另请注意,我已经查看了yum 安全插件,但它在 CentOS 上不起作用。
那么,您如何管理大量运行异构应用程序阵列的 CentOS 服务器的更新?
Ubuntu 的软件更新经常需要重新启动(这可能会产生副作用,例如停机时间)。
我看到 Ubuntu 有https://www.ubuntu.com/livepatch,它允许在不重启的情况下进行内核更新,但是,这是一项付费服务。还有ksplice。
是否存在升级/补丁不需要重启的 Linux 发行版/进程?
(我知道设置高可用性 (HA) 服务器并拥有一次性服务器是最佳实践 - 所以我不是在要求保持服务,而是在实际服务器上。)
在更新方面,固件很少受到关注。眼不见,心不烦。
许多设备:RAID 控制器、NIC、芯片组,甚至硬盘驱动器,都从更新中获益。更好的功能、安全/错误修复等。
大多数 SA 说,“只要它坏了,就更新固件。” 但这可能会导致未来的困难;有几次,当就硬盘驱动器故障与戴尔联系时,我被问到我的硬盘驱动器固件是否是最新的。我所有的服务器都使用某种类型的 RAID 配置。如果我已经有一个驱动器出现故障,我是否应该考虑尝试升级其余驱动器或 RAID 控制器上的固件?我会说不。但戴尔似乎有不同的看法。
(我知道戴尔有一个很好的实用程序,称为Server Update Utility,它可以检查任何戴尔服务器上的所有新固件。)
自从在我现在工作的地方开始工作以来,我一直在与我的老板和同事在更新系统方面进行无休止的斗争。
我当然完全同意,任何更新(无论是固件、操作系统还是应用程序)都不应在发布后立即应用,但我也坚信,如果供应商发布它,至少应该有某种原因;最常见的原因通常是修复一些错误......这也许你现在没有遇到,但如果你不跟上,你可能很快就会遇到。
对于安全修复尤其如此;例如,如果有人只是简单地应用一个已经可用数月的补丁,那么臭名昭著的SQL Slammer蠕虫就会无害。
我完全赞成在部署更新之前测试和评估更新;但我强烈不同意“如果它没有坏就不要碰它”的系统管理方法,当我发现生产 Windows 2003 SP1 或 ESX 3.5 Update 2 系统时,它真的伤害了我,我能得到的唯一答案是“它正在起作用,我们不想破坏它”。
你怎么看待这件事?你的政策
是什么?如果您的公司政策与您的政策不符,您的公司政策
是什么?
固件更新(BIOS、存储等)呢?
主要的操作系统更新(服务包)呢?
较小的操作系统更新怎么样?
应用程序更新呢?
我的主要兴趣当然是更新服务器,因为客户端补丁管理通常更简单,并且有众所周知的工具和最佳实践来处理它。
在 CentOS 5.8+ 和 Red Hat Enterprise 6+ 上,安装/更新软件包时,我注意到在适当的时候创建了一个标志文件 /var/run/reboot-required。在 Ubuntu(我猜也是 Debian)上,如果安装了包“update-notifier-common”,则包 postinst 脚本会触发此标志文件的创建。在 RHEL/CentOS 上,我无法弄清楚这是如何发生的。
例如,在 RHEL 和 CentOS 上,我最近安装了几个更新并创建了 /var/run/reboot-required。其中之一是“openssl”软件包升级。我认为这是创建标志文件的原因,因为在 Ubuntu 上它也是这样工作的。然而我看着所有了每个更新包的“rpm -q --scripts”,但没有看到任何可能创建该标志文件的内容。大多数情况下,我看到了“安装后程序:/sbin/ldconfig”。
所以我的问题是: