我apt-get update && apt-get upgrade
通过将包unattended-upgrades
与 一起使用来实现自动化。不执行anacron
是有道理的,因为存在破坏事物的风险。unattended-upgrades
apt-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]
软件包列表的电子邮件并打印出一条消息。
可能的选择:阿普蒂克隆
如果有任何待处理的包裹,此包裹将每天发送电子邮件。它也可以解决您的问题,因为它还会通知已退回的包裹。