![ubuntu hardy 上的 /etc/cron.daily/apt 和 /etc/cron.daily/aptitude](https://linux22.com/image/492733/ubuntu%20hardy%20%E4%B8%8A%E7%9A%84%20%2Fetc%2Fcron.daily%2Fapt%20%E5%92%8C%20%2Fetc%2Fcron.daily%2Faptitude.png)
我是一名系统管理员新手,否则我会自己解决这个问题。我有一个 Slicehost Slice,我注意到有几个脚本在运行(我在问题标题中提到的那些),看起来像是在进行系统更新。我想知道让这些脚本在无人监督的情况下自动运行是否是个好主意。该服务器运行一个电子商务网站,任何破坏服务器的升级都是不幸的。请提供最佳实践建议?我应该把它们保存在某个地方,而不是每天在无人监督的情况下让 cron 触发它们吗?它们到底在做什么?谢谢!
答案1
简短的回答:/etc/cron.daily/apt 和 /etc/cron.daily/aptitude 都可以安全地保持启用状态,并且不会导致任何意外升级。
长答案:
/etc/cron.daily/aptitude 在默认的 Hardy 安装中只是在 /var/backup 中维护软件包状态文件的备份,备份文件的名称为 aptitude.pkgstates.0 到 aptitude.pkgstates.6(其中文件 1-6 已被 gzip 压缩)。
/etc/cron.daily/apt 更为复杂,可以根据您的 apt 配置设置执行各种操作,这些设置保存在 /etc/apt/apt.conf 和 /etc/apt/apt.conf.d/ 下的各种包含文件中
如果您想知道每日 apt 脚本是否正在执行无人值守升级,请检查此 apt-config 命令的输出。以下是默认设置,表示未执行无人值守升级:
$ apt-config shell UnattendedUpgradeInterval APT::Periodic::Unattended-Upgrade
UnattendedUpgradeInterval='0'
有关“无人值守升级”过程的更多信息(我不建议用于生产系统),请参阅 /usr/share/doc/unattended-upgrades/README - 如果该文件不存在,则您可能没有安装“unattended-upgrades”包。
/etc/cron.daily/apt 上的每日 apt 脚本注释得很好,默认情况下它每天运行一次“apt-get update”。这只是使可用软件包文件的缓存保持最新。它不会安装或删除软件包。
您可以将其配置为下载更新的包文件,然后稍后手动安装,也可以将其配置为清理已下载的包文件(安装后不需要)。
所有这些行为都是通过存储在 /etc/apt/apt.conf.d/10periodic 中的配置设置来配置的 - 这些设置默认为:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
APT::Periodic::Unattended-Upgrade "0";
我建议验证这些设置并阅读 /etc/cron.daily 中的脚本,但您目前可能没有执行无人值守和意外升级的任何脚本。
答案2
这些信息可能不够。您确实必须阅读脚本本身才能了解它们对特定主机做了什么。如果它们确实在升级(而不是只是更新),您肯定会希望在生产服务器上禁用它。但是,仅更新就可以了,因为它只会从存储库更新可用程序的本地缓存。一些主机甚至用自己的存储库覆盖默认分发版(hardy)存储库,以获得更多控制权。因此,请检查它们,但任何像样的主机都不会自动更新您的任何核心组件。抱歉,我没有使用 SliceHost 的个人经验可以分享。
答案3
由于我不能直接编辑内容,也不喜欢这里散乱的风格,所以我继续在这个问题。