Voici le script en une seule ligne pour pouvoir le mettre dans un cron :

apt-get update >/dev/null; apt-get --simulate --quiet=2 upgrade | mail -e -s "Mise à jour" votre_e_mail

On commence par faire un apt-get update. Pour éviter qu'il écrive l'avancement des chargements sur la sortie standard on l'envoie dans /dev/null.

Ensuite on fait un apt-get upgrade :

  • On ajoute --simulate pour éviter que le système se mette à jour sans notre contrôle. Si vous voulez qu'il le fasse ne mettez pas cette option.
  • Le --quiet=2 est important car par défaut upgrade donne un résumé de l'état du serveur. En clair il dit qu'il n'y a pas de mise à jour lorsque'il n'y en à pas. Le problème c'est que l'on va alors ce retrouver avec un texte même si tout va bien ce qui va poser problème pour l'envoi du mail.

La sortie de apt-get upgrade est envoyée par mail :

  • -e permet d'éviter d'envoyer un e-mail si il est vide. C'est pour ça qu'il est important de mettre --quiet=2 à l'upgrade pour éviter de recevoir des mails disant qu'il n'y a pas de mise à jour.
  • -s permet de configurer le sujet ici "Mise à jour". Remarquez qu'il y a des caractères interdits notamment "!"
  • Finalement l'adresse e-mail

Je vous conseille de ne pas le lancer de manière trop répétée tout de même et ceci pour 2 raisons :

  • En cas de mise à jour disponible il vous enverra systématiquement un e-mail même si vous avez déjà été prévenu. Un rappel de temps en temps c'est bien 24 mails par jour, non !
  • Il fait à chaque fois un "apt-get update" puis un upgrade ce qui prend des ressources.