apt-check/python-apt 回归?

apt-check/python-apt 回归?

自二月初以来,我一直看到此类错误消息:

E: Unknown Error: '<class 'KeyError'>' ("The cache has no package named 'linux-headers-5.4.0-144-generic:amd64'")

apt,,apt-cache......aptitude他们都没有发现所哀叹的文件存在问题apt-check

我的问题是,我们用它apt-check来确定需要升级的机器数量,包括常规和安全修复。监控一直处于故障状态,直到我真正运行升级,我无法弄清楚问题出在哪里。

有没有人遇到过类似的问题,并且能够更好地弄清楚发生了什么并解决它们?

答案1

我还没有找到根本原因,但每小时都会收到大约 200 封来自 cron 的电子邮件,告诉我 apt-check 遇到了问题,这促使我找到了替代方案,并且很快 =}

在将指标提供给 Prometheus 的包装脚本中,我用apt-check下面的代码替换了调用:

/usr/bin/unattended-upgrade --dry-run -d 2>/dev/null | /usr/bin/awk 'BEGIN{sec=0;up=0}/^Checking: / {if($0~/archive:[^ ]+-security/){sec++}else{up++}}END{printf "%s;%s",up+sec,sec}'

不,它并不漂亮......但它能完成工作并且不会发出噪音。

答案2

该问题的错误(由我提交的客户案例支持): https://bugs.launchpad.net/ubuntu/+source/update-notifier/+bug/2007311

问题的无意修复似乎是通过以下方式完成的: https://bugs.launchpad.net/ubuntu/+source/update-notifier/+bug/2008212

它还没有被推送到 Focal 或 Jammy,但我现在正在客户支持案例中推动这一点,因为我已经在 300 多台服务器上解决这个问题,这并不好玩。

相关内容