Bonjour
Une commande complexe et utile pour les utilisateurs d'openSUSE qui souhaitent consulter rapidement les paquets installés, supprimés et les commandes effectuées sur leur système à une date donnée.
Cette commande exploite le fichier :
/var/log/zypp/history
pour extraire et formater les informations effectuées via Zypper.
grep -E "\|install\||\|remove ?\||\|command" /var/log/zypp/history \
| grep "$DATE" \
| awk -F'|' 'BEGIN {print "DateTime|Action|Package/Command|Version"}
{gsub(/ /, "", $2); printf "%-20s|%-8s|%-28s|%-12s\n", $1, $2, $3, $4}'
script surmon github (https://github.com/crisis1er/Zypper-Package-History-Logs/tree/main)
le rendre excutable dans le répertoire : Documents/scripts
sudo chmod +x script_choisi_sur_mon_github.sh
Excuter le script
sudo ./version_script_sur_mon_github.sh
Date/Heure | Action | Paquet/Commande | Version
2025-01-27 00:22:15 | command | root@unixlinuxpro | 'zypper' 'dup'
2025-01-27 00:25:03 | remove | ovpn-dco-kmp-default | 0.2.20241216~git0.a08b2fd_k6.13.0_1-1.22
2025-01-27 00:25:43 | install | chromium | 132.0.6834.110-1.1
2025-01-27 00:25:51 | install | libQt6Bluetooth6 | 6.8.1-3.1
On distingue :
- Une commande [command] : zypper dup
- Une suppression paquet [remove] : ovpn-dco-kmp-default
- Une installation paquet : chromium
C'est particulièrement pratique pour les actions de dépannage.
Explication :
- Outils utilisés :
* grep : Pour rechercher des motifs spécifiques dans le fichier history.
* awk : Pour formater les données extraites (titres | colonne |.
* date : Pour obtenir une date au format souhaité.
* Pipes (|) : Transmission des résultats d'une commande à une autre.
--------------------------------------------------------------------------------------
Format date du jour : grep $(date '+%Y-%m-%d')
Format date choisi : grep "2025-01-25"
-------------------------------------------------------------------------------------
Bonsoir,
Ça fonctionne :) mais quelque chose cloche dans ta description du script il me semble. La consultation se fait à la date du jour où la commande est passée et non à une date donnée.
À une date donnée (à telle date) signifierait qu'on puisse interroger une date précise.
Bonsoir
@Chumi Je t'explique :
Dans la commande tu as le format de date d'aujourdhui comme cela :
"$(date '+%Y-%m-%d')"Si je veux interroger le 25/01/2025 Je supprime entre les guillemet
" " le format date d'aujourd'hui
$(date '+%Y-%m-%d')et j'y colle la date désirée sur ce format :
"yyyy/mm/dd" "2025/01/25"Ca me donne cela pour moi :
grep -E "\|install\||\|remove ?\||\|command" /var/log/zypp/history | grep [b]"[color=red]2025-01-25"[/color][/b] | awk -F'|' 'BEGIN {print "Date/Heure | Action | Paquet/Commande | Version "}
{printf "%-20s| %-8s| %-28s| %-12s\n", $1, $2, $3, $4}'
Résultat :
Date/Heure | Action | Paquet/Commande | Version
2025-01-25 06:19:31 | command | root@unixlinuxpro | 'zypper' 'in' '--from' 'download.opensuse.org-oss_2' 'btop.x86_64'
2025-01-25 06:19:45 | install | btop | 1.4.0+git20241108.e17bc6b-1.1
2025-01-25 10:03:09 | command | root@unixlinuxpro | 'zypper' 'in' 'kodi'
2025-01-25 10:03:25 | install | kodi | 21.2-1699.10.pm.4
2025-01-25 16:31:10 | command | root@unixlinuxpro | 'zypper' 'dup' '--allow-vendor-change'
2025-01-25 16:31:12 | remove | kde-print-manager-lang | 24.11.70git.20240503T012733~c8
Je travaillerais sur l'amélioration du script, afin qu'il demande à l'utilisateur quelle date choisir.
Bonsoir,
Oui ce serait bien :) car sinon on perd l'avantage d'un script s'il faut le bricoler à chaque fois.
Bonsoir Yoman
C'est une bonne idée , pour faire une recherche jour/jour , ça peut obliger de refaire la manip plusieurs fois avant de trouver ce que l'on cherche
Est il possible de faire une période ( 2025/01/15 - 2024/ 12/28 ) , tu vois l'idée , ça simplifierait un peu la recherche et ça éviterait une boucle redondante avec une multitude de lignes où l'on ne s'y retrouverait plus
Bonne soirée
Salut c’est bien que ce soit dans ‘configuration vu avancée ‘ car personnellement je vais dans yast history et j’ai toutes les majs avec leur date. Je pense que c’est plus simple. Mais cpourquoi faire simple quand on peut faire compliqué ? 😃
Bonjour,
Ah oui! je me souviens que cela a déjà été mentionné sur ce forum mais je ne vois plus comment on y accède (je bigle ou quoi? :)) )
bonjour. Dans yast, installer des logiciels,onglet "extras", afficher l'historique.
Entièrement d'accord avec toi.
(Sur les forums anglophones, la demande d'une extraction des logs zypper a été réclamée pas mal de fois).
mais quand on a pas d'électricité , c'est bien d'avoir une bougie pour s'éclairer..Le but de la rubrique « Configuration avancée », c'est quand rien ne fonctionne...
On fait quoi et comment ?
unixlinuxpro# ./zypper-history-beta_2.sh
Voulez-vous spécifier une date ? [O/n] O
📅 Entrez la date (YYYY-MM-DD) : 2025-01-28
==================================================================================
Historique Zypper (/var/log/zypp/history) - 2025-01-28
==================================================================================
Date/Heure | Action | Paquet/Commande | Version
----------------------------------------------------------------------------------
2025-01-28 20:19:59 | command | root@unixlinuxpro | 'zypper' 'dup' '--download-as-needed'
2025-01-28 20:20:14 | install | bash-doc | 5.2.37-528.2
2025-01-28 20:20:20 | install | coreutils-systemd | 9.6-409.5
2025-01-28 20:20:22 | install | dbus-broker-block-restart | 36-50.4
2025-01-28 20:20:48 | install | filesystem | 84.87-325.1
2025-01-28 20:21:44 | install | liblastlog2-2 | 2.40.4-3.4
2025-01-28 20:21:48 | install | libp11-kit0 | 0.25.5-71.13
2025-01-28 20:21:52 | install | p11-kit | 0.25.5-71.13
2025-01-28 20:21:55 | install | libproc2-1 | 4.0.5-322.5
2025-01-28 20:21:59 | install | bash | 5.2.37-528.2
2025-01-28 20:22:01 | install | bash-sh | 5.2.37-528.2
2025-01-28 20:22:05 | install | p11-kit-tools | 0.25.5-71.13
2025-01-28 20:22:07 | install | p11-kit-server | 0.25.5-71.13
2025-01-28 20:22:10 | install | procps | 4.0.5-322.5
2025-01-28 20:22:13 | install | util-linux-tty-tools | 2.40.4-3.4
2025-01-28 20:22:18 | install | util-linux-systemd | 2.40.4-3.4
2025-01-28 20:22:20 | install | sysuser-shadow | 3.3-13.1
2025-01-28 20:22:28 | install | systemd-presets-common-SUSE | 15-115.1
2025-01-28 20:22:33 | install | syslog-service | 2.0-972.29
2025-01-28 20:22:35 | install | polkit-default-privs | 1550+20250128.968956c-613.1
2025-01-28 20:22:39 | install | mdadm | 4.3-308.145
2025-01-28 20:22:42 | install | m4 | 1.4.18-74.17
2025-01-28 20:22:44 | install | lastlog2 | 2.40.4-3.4
2025-01-28 20:22:47 | install | klogd | 1.5.1-972.29
2025-01-28 20:22:52 | install | grub2-common | 2.12-47.68
2025-01-28 20:22:57 | install | grub2-i386-pc | 2.12-47.68
2025-01-28 20:23:00 | install | grub2 | 2.12-47.68
2025-01-28 20:23:04 | install | gawk | 5.3.1-118.70
2025-01-28 20:23:06 | install | fwupd-efi | 1.7-16.44
2025-01-28 20:23:08 | install | dbus-broker | 36-50.4
2025-01-28 20:23:10 | install | cron | 4.2-500.184
2025-01-28 20:23:13 | install | cronie | 1.7.2-500.184
2025-01-28 20:23:17 | install | bash-lang | 5.2.37-528.2
2025-01-28 20:23:20 | install | procps-lang | 4.0.5-322.5
2025-01-28 20:23:24 | install | rtkit | 0.13-78.3
2025-01-28 20:23:29 | install | grub2-x86_64-efi | 2.12-47.68
2025-01-28 20:23:31 | install | grub2-systemd-sleep-plugin | 2.12-47.68
2025-01-28 20:23:33 | install | grub2-snapper-plugin | 2.12-47.68
2025-01-28 20:23:38 | install | dracut | 059+suse.679.g7559201e-386.6
2025-01-28 20:23:44 | install | cpp13 | 13.3.1+git8964-118.50
2025-01-28 20:23:58 | install | libstdc++6-devel-gcc13 | 13.3.1+git8964-118.50
2025-01-28 20:24:13 | install | gcc13 | 13.3.1+git8964-118.50
2025-01-28 20:24:16 | install | gcc13-locale | 13.3.1+git8964-118.50
2025-01-28 20:24:22 | install | gcc13-c++ | 13.3.1+git8964-118.50
2025-01-28 20:24:24 | install | libatk-1_0-0 | 2.54.1-245.2
2025-01-28 20:24:27 | install | libatspi0 | 2.54.1-245.2
2025-01-28 20:24:40 | install | ghostscript | 10.04.0-220.44
2025-01-28 20:24:42 | install | ghostscript-x11 | 10.04.0-220.44
2025-01-28 20:24:44 | install | typelib-1_0-Atk-1_0 | 2.54.1-245.2
2025-01-28 20:24:47 | install | libatk-bridge-2_0-0 | 2.54.1-245.2
2025-01-28 20:24:50 | install | at-spi2-core | 2.54.1-245.2
2025-01-28 20:24:53 | install | at-spi2-core-lang | 2.54.1-245.2
2025-01-28 20:24:56 | install | libfreebl3 | 3.107-4.11
2025-01-28 20:24:58 | install | mozilla-nss-certs | 3.107-4.11
2025-01-28 20:25:01 | install | libsoftokn3 | 3.107-4.11
2025-01-28 20:25:05 | install | mozilla-nss | 3.107-4.11
2025-01-28 20:25:08 | install | mozilla-nss-sysinit | 3.107-4.11
2025-01-28 20:25:11 | install | libvlccore9 | 3.0.21-1699.9.pm.1
2025-01-28 20:25:25 | install | obs-studio | 31.0.0-1699.6.pm.12
2025-01-28 20:25:27 | install | libvlc5 | 3.0.21-1699.9.pm.1
2025-01-28 20:25:37 | install | vlc-noX | 3.0.21-1699.9.pm.1
2025-01-28 20:25:41 | install | vlc-lang | 3.0.21-1699.9.pm.1
2025-01-28 20:25:45 | install | vlc-qt | 3.0.21-1699.9.pm.1
2025-01-28 20:25:48 | install | vlc-codec-fluidsynth | 3.0.21-1699.9.pm.1
2025-01-28 20:25:52 | install | vlc-codecs | 3.0.21-1699.9.pm.1
2025-01-28 20:25:56 | install | vlc-codec-gstreamer | 3.0.21-1699.9.pm.1
2025-01-28 20:26:03 | install | vlc | 3.0.21-1699.9.pm.1
2025-01-28 20:26:08 | install | vlc-vdpau | 3.0.21-1699.9.pm.1
2025-01-28 20:26:10 | install | system-user-kodi | 22.x.+git.20250127T172131~12245d092-410.2
2025-01-28 20:28:18 | install | kernel-liquorix | 6.12.11.lqx2-1.1
2025-01-28 20:29:20 | install | microsoft-edge-beta | 133.0.3065.31-1
==================================================================================
Log d'exécution (/var/log/zypper.log) - 2025-01-28
==================================================================================
Heure | PID | Commande
----------------------------------------------------------------------------------
================================================================================
Collect from /var/log/zypper.log ...
2025-01-28 20:08 | 68258 | zypper vb
2025-01-28 20:17 | 68333 | zypper ref
2025-01-28 20:18 | 68826 | zypper dup --download-as-needed
unixlinuxpro#
script dans mon github (https://github.com/crisis1er/Zypper-Package-History-Logs/blob/main/zypper-history-beta_2.sh)
Yast history ne te donne pas les sorties de commandes que tu as passées.
Généralement, c'est ce qui est demandé quand on cherche à se faire dépanner.
Le script extrait à une date choisie : zypper history & zypper log :
- commande éxecutée
- paquet installé
- paquet supprimé
et de zypper.log
- Uniquement les commandes exécutées.
Et en cas de dépannage ça peut aider et y
voir plus clair.
Perso, je n'utilise plus Yast depuis pas mal de temps.
* Je mets mes scripts ou autres outils de dépannage sur clé USB, en plus d'avoir passé mon PC de test en BTRFS
Dans tous les cas, si ça peut aider, c'est le but.
Pourquoi pas, mais ça va être plus compliqué...mais c'est possible...
Il faut que j'inclue des conditions dans le script.
- Date du jour
- Date précise.
- période
Je ferais une version beta_3 (avenir)
Bonjour.
Pas d’inquiétude, aucun problème. Ton script a bien sa place dans la section configuration avancée.
Je ne me sers pratiquement plus de yast également.
En fait je suis sous leap donc jamais ou presque de problèmes. 😀
Bonjour Yoman
Je me doute , l'idée est simple en elle mêm , mais je pense qu'il faut intégrer pas mal de conditions pour obtenir un résultat convenable
Jtro met qques infos à la fin de son post , je n'ai pas vu beaucoup de publications sur ces sujets , il va falloir que je cherche un peu
Bon courage à toi pour la réussite de ta " béta 3 "
Bonne journée