Предполагая, что ваша система всегда автоматически обновляется с помощью 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@example.com
fi
Скрипт проверяет наличие ожидающих пакетов следующей командой
apt-get -su --assume-no dist-upgrade
Опции:
- -с, выполняет симуляцию
- -у распечатать список обновленных пакетов
- -assume-no, автоматическое "нет" на все запросы
Если есть какие-либо ожидающие обновления пакеты, которые будут обновлены, установлены или удалены, сценарий отправляет электронное письмо на адрес электронной почты email@example.com
со списком пакетов и распечатывает сообщение.
Возможная альтернатива: apticron
Этот пакет будет отправлять ежедневные электронные письма, если есть какие-либо ожидающие решения пакеты.
Это также должно решить вашу проблему, так как он также сообщает о пакетах, которые были сохранены обратно.