Je dois trouver la dernière fois que la
apt-get update
commande a été exécutée sur mon serveur. Comment puis-je déterminer cette information?
Je dois trouver la dernière fois que la
apt-get update
commande a été exécutée sur mon serveur. Comment puis-je déterminer cette information?
Dans les systèmes Ubuntu, il existe au moins un fichier /etc/apt/apt.conf.d/15update-stamp qui contient :
APT::Update::Post-Invoke-Success {"touch /var/lib/apt/periodic/update-success-stamp 2>/dev/null || true";};
Donc, vérifiez si vous avez le fichier /var/lib/apt/periodic/update-success-stamp et si vous l'avez, vous pouvez utiliser
stat -c %y /var/lib/apt/periodic/update-success-stamp
pour obtenir l'heure de la dernière invocation de "apt-get update".
Et si votre système n'a pas ce fichier de configuration apt, vous pouvez toujours l'ajouter.
Ne consultez pas les fichiers de verrouillage. Les fichiers de verrouillage ne sont pas fiables, ils ont tendance à se déplacer avec le temps avec les nouvelles versions de Linux, et de nombreux programmes nettoient (suppriment) les fichiers de verrouillage lorsqu'ils ont terminé avec eux.
La commande suivante vous donnera ce que vous cherchez.
ls -lt --time-style="long-iso" /var/log/apt | grep -o '\([0-9]\{2,4\}[- ]\)\{3\}[0-9]\{2\}:[0-9]\{2\}' -m 1
Il s'agit de deux commandes en une. Les résultats de la première commande se filtrent dans la seconde via le symbole pipe (|).
Dans la première commande, j'utilise "ls" pour lister le contenu du répertoire /var/log/apt, qui est le répertoire qui stocke les journaux d'historique d'accès pour apt-get. La partie "-lt" est en fait deux commutateurs. Le premier commutateur "l" indique à "ls" de lister un fichier par ligne avec des détails. Le second commutateur "t" indique à "ls" de trier par date et heure. "--time-style" force l'affichage de la date et de l'heure dans le format "AAAA-MM-JJ HH:MM".
Dans la portion "grep" de la commande, le commutateur "-o" indique à grep de ne montrer que les portions de chaque ligne qui correspondent exactement à l'expression régulière. L'expression régulière que j'ai utilisée ici détecte les dates et heures qui sont dans le format spécifié dans la commande "ls". Vous remarquerez également le véritable petit tour de magie à la fin de la commande "grep", où il y a un commutateur "-m" avec le chiffre "1" immédiatement après. Cela indique à "grep" d'arrêter de chercher des correspondances après avoir trouvé la première.
Donc, en résumé, nous listons les détails du fichier journal apt pour pouvoir voir la dernière date de modification, nous les trions ensuite par date et disons à grep de récupérer la première date en haut, qu'il renvoie ensuite. C'est la dernière date à laquelle apt-get a été exécuté.
Pour jouer le rôle de l'avocat du diable pendant un moment, cependant, il est courant pour les plateformes Debian comme Ubuntu de planifier apt-get comme une tâche qui s'exécute régulièrement. Si vous cherchez la personne à l'autre bout de l'exécution de apt-get, vous pourriez en fait trouver une machine. Vous pourriez toujours faire correspondre les journaux d'accès avec les journaux apt pour voir si des horodatages coïncident. Il est également possible d'examiner l'historique des commandes d'un utilisateur dans une certaine mesure.
En espérant que cela vous aide!
Je soupçonne que vous pouvez vérifier les heures de dernière modification des fichiers /var/cache/apt pour savoir quand les dernières mises à jour ont été appliquées aux listes de paquets.
Je viens de tester cela, et j'ai exécuté "sudo apt-get update" deux fois de suite, et les dates n'ont pas changé de leur valeur actuelle, mais je soupçonne que c'est parce qu'il n'y avait pas de nouvelles mises à jour à appliquer, et que les caches sont à jour.
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.