我有许多虚拟专用服务器,每个服务器apt-get upgrade -y
有时都需要一些维护。
(Ubuntu 18.04)
我面临的问题:
- 我没有时间手动升级每一个。
- 我不想投入
apt-get upgrade -y
例行cron
任务,因为我想了解和控制服务器的状态。 - 升级易碎品
ssh
?向我宣扬现有的安全措施,但我宁愿放弃。 - 有一个云图像中的错误这可能会在升级时产生交互式对话框(请参阅下面的 ubuntu-dev 电子邮件)...如果可能的话,我希望能够防错。
(假设我已经apt update
解决了。)
正在制定的建议解决方案:运行测试升级,然后告诉所有其他机器 cron 进行升级 - 但是如何升级?
- 有一个 cron-run 脚本,它对
if... -f
一个文件运行测试,比如说.medoupgrade
;如果true
,它运行apt-get upgrade -y
然后删除该.medoupgrade
文件。 - 我在测试服务器上运行手动升级。如果我满意,那么我
ssh user@vps 'touch .medupgrade'
会升级到我的机器;每台机器的 cron 都会看到它并升级一次。 - 以 Linus-Sam Hill 的名义,
cron
升级脚本中应该包含什么内容?
有两个问题:
1. 到目前为止,我上面提到的 1-2 种方法还行吗?愚蠢吗?聪明吗?有人已经这样做了?
我的意思是,我并没有看到很多人谈论他们的 cron 更新来找.medoupgrade
工作。实际上,我找不到任何工作。但是,我也没有看到人们每天在博客上发布其他标准方法来同时升级多个服务器。我看到的只是每个人都apt-get upgrade -y
在他们的服务器上做着像在最喜欢的纹身店或咖啡杯上做一样的事情。
我价值64,000美元的问题:
2. 哪些内容可以“安全地”进入运行的脚本apt-get upgrade -y
?
将apt-get upgrade -y
脚本放入 VPS 上是否安全?
如果我要让脚本在我不注意的时候运行升级 - 不是定期的,而是在我不注意的时候 - 最安全的方法是什么?
已经完成挖掘:
他们回答我:Ubuntu-devel-discuss 文摘,第 144 卷,第 13 期 –apt upgrade -y
1. 回复:事件中不再有对话
以下是他们谈话的重要部分:
在您的情况下,使用 DEBIAN_FRONTEND=noninteractive,运行带有 -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" 的 apt-get 以及从 /dev/null 重定向 stdin 可能是合适的。
他们说得对吗?我应该运行这个来代替吗apt-get upgrade -y
?如果是这样,那么在没有我监视的情况下可以安全运行的脚本中,所有这些看起来是什么样的?