Mettre à jour automatiquement Debian Sid et Stretch

Ce que l’on reproche souvent à Debian, c’est d’avoir des softs qui datent un peu. Étant mises à jour tous les 2 ans, certaines choses peuvent en effet devenir obsolètes. Mais avec les versions Sid et Stretch, qui sont des rolling release, le problème ne se pose plus. Il faut juste penser à les mettre à jour régulièrement :

Screenshot from 2016-01-28 19-30-43

Cette suite de commandes est le minimum vital pour maintenir votre sytème à jour, mais nous pouvons écrire un script afin d’automatiser tout ça et en profiter pour ajouter quelques fonctions. Nous allons afficher dans la console de l’état actuel de la machine après mise à jour (Version du kernel, environnement graphique, etc…), garder une trace de cette mise à jour dans un fichier, et automatiser son lancement afin qu’elle se lance au démarrage de la machine et toutes les heures. C’est parti !

PRÉPARATION :

Tout d’abord, nous allons devoir créer le fichier .txt dans lequel seront écrites les données lors de chaque mise à jour :

Screenshot from 2016-01-28 19-40-53

Maintenant nous installons screenfetch qui nous servira à afficher des détails sur le système à la fin de la mise à jour :

Screenshot from 2016-01-29 10-20-39

Pour finir nous lancons notre éditeur de texte préféré en créant le fichier dans /usr/bin :

Screenshot from 2016-01-28 19-48-49

J’ai choisi d’appeler cette commande up mais vous pouvez bien entendu changer son nom. Quand vous aurez fini n’oubliez pas de changer ses permissions à 755 :

Screenshot from 2016-01-28 19-53-11

Voilà, nous pouvons maintenant attaquer le script.

ÉCRITURE DU SCRIPT :

La mise à jour sera assez similaire à la méthode manuelle citée plus haut. La différence pour upgrade et dist-upgrade est qu’ici nous lui envoyons la réponse « y » que nous n’aurons plus à taper. Nous allons y ajouter un autoremove et un autoclean afin de nettoyer les dépendances inutiles et les paquets périmés :

Screenshot from 2016-01-29 09-29-26

Ensuite, nous allons écrire dans le fichier updates.txt quelques infos sur la mise à jour effectuée. Nous commençons par mettre un titre avec la date :

Screenshot from 2016-01-29 09-33-42

Maintenant une condition pour vérifier si la variable d’environnement $USER a un nom d’utilisateur (Lorsque la mise à jour sera lancée automatiquement il n’y en aura pas). S’il y en a un, nous le mettons dans la variable $updater, sinon nous y écrivons « auto update ».

 

Screenshot from 2016-01-29 09-46-18

Ensuite, on écrit dans update.txt que le système est bien à jour, avec la date et le nom d’utilisateur :

Screenshot from 2016-01-29 09-50-23

On récupère l’adresse IP de l’utilisateur que l’on écrit dans updates.txt :

Screenshot from 2016-01-29 09-52-44

On teste si l’utilisateur est connecté à distance en SSH. Si oui on récupère le contenu de la variable d’environnement $SSH_CLIENT et nous gardons l’adresse IP à l’aide de la commande cut. Grâce à cette adresse nous récupérons ses informations ARP et affichons, entres autres, son adresse IP et son adresse MAC :

Screenshot from 2016-01-29 10-04-24

Ca nous permet donc de récupérer ces informations :

Screenshot from 2016-01-29 10-11-50

Pour terminer, nous mettons à jour la base de données de la commande locate, nous écrivons l’état actuel de la machine dans updates.txt avec uname -a et nous lançons screenfetch qui affichera dans la console la même chose que uname en plus détaillé :

Screenshot from 2016-01-29 10-29-01

Voilà ! Voici le résultat final de ce que nous venons de voir :

Screenshot from 2016-01-29 10-35-06

Vous pouvez maintenant taper up et attendre jusqu’à l’affichage de screenfetch :

Screenshot from 2016-01-29 11-13-57

Vérifiez que le fichier updates.txt contienne bien le texte attendu en faisant un cat ou un tail sur /home/updates.txt :

Screenshot from 2016-01-29 11-16-05

Cliquez ici pour télécharger le script.

LANCEMENT AUTOMATIQUE DU SCRIPT :

Si vous souhaitez que ce script se lance automatiquement (Ce n’est pas une obligation), vous pouvez vous connecter en root et lancer crontab avec l’option -e pour l’editer : Screenshot from 2016-01-29 10-47-01

Je vous donne un exemple que j’ utilise moi-même pour qu’il se lance au démarrage de la machine et toutes les heures, mais vous pouvez adapter selon vos besoins :

Screenshot from 2016-01-29 10-42-32

Maintenant tout se fera de manière transparente et restera à jour sans que vous y pensiez.

2 pensées sur “Mettre à jour automatiquement Debian Sid et Stretch”

  1. Bonjour,
    Excellent script bien pratique !!!!

    juste un petit bug sur la partie récupération de la MAC Adress, dans le fichier « update.txt » il n’affiche que :
    Logged SSH from

    Si correctif, suis preneur de l’info
    Merci encore
    A+

    1. Bonjour,

      étant maintenant sous Fedora côté laptop et CentOS côté serveur, je n’ai pas utilisé ce script depuis quelques mois. Je jetterai un oeil à l’occasion sur une VM, mais je pense qu’il faut avant tout vérifier de ton côté que arp soit bien installé sur ta machine (Dans la majorité des cas il l’est). Après vérification (et éventuellement installation de arp) il faut essayer de taper dans un terminal « arp ipDeTaMachine> ». Si ça ne fonctionne pas, c’est que le problème vient de là.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *