Debian - 当“dist-upgrade”软件包可用时如何收到通知?

Debian - 当“dist-upgrade”软件包可用时如何收到通知?

apt-get update && apt-get upgrade通过将包unattended-upgrades与 一起使用来实现自动化。不执行anacron是有道理的,因为存在破坏事物的风险。unattended-upgradesapt-get dist-upgrade

但是我至少想知道是否有可用于 dist-upgrade 的软件包(例如 mail to root)。我不想一遍又一遍地手动检查。

我怎样才能做到这一点 ?

答案1

假设你的系统总是apt-get upgrade通过 cronjob 运行这个脚本自动更新可以做到这一点:

#!/bin/bash

# Optional run this command first if not using automatic upgrades
# sudo apt-get update && sudo apt-get upgrade -y

pkglist=$(apt-get -su --assume-no dist-upgrade)
pending=$(echo "$pkglist" | grep -oE "[0-9]+ upgraded, [0-9]+ newly installed, [0-9]+ to remove and [0-9]+ not upgraded\.")
upgraded=$(echo "$pending" | grep -oE "[0-9]+ upgraded" | cut -d' ' -f1)
installed=$(echo "$pending" | grep -oE "[0-9]+ newly installed" | cut -d' ' -f1)
removed=$(echo "$pending" | grep -oE "[0-9]+ to remove" | cut -d' ' -f1)
count=$(( $upgraded + $installed + $removed ))
if [ "$count" -ne "0" ]; then
  echo "$count pending packages to upgrade/install/remove, sending email"
  echo "$pkglist" | mail -s "dist-upgrade: $count pending packages" [email protected]
fi

该脚本使用以下命令检查待处理的包

apt-get -su --assume-no dist-upgrade

选项:

  • -s,进行模拟
  • -u,打印升级软件包的列表
  • 假设不,自动对所有提示说“否”

如果有任何待处理的软件包需要升级、新安装或删除,该脚本将发送一封包含[email protected]软件包列表的电子邮件并打印出一条消息。

可能的选择:阿普蒂克隆

如果有任何待处理的包裹,此包裹将每天发送电子邮件。它也可以解决您的问题,因为它还会通知已退回的包裹。

相关内容