LOGROTATE & APT : Lancer une commande avant rotation des logs Le sujet est résolu

Demande d'aide : c'est ici.
Répondre
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Bonjour, :006:

Dans la suite de Administration : Tenue/Génération des Notes de configuration.


Juste avant la rotation des logs (fin de mois),

je voudrais lancer automatiquement la commande :

grep -iE 'apt.*install' /var/log/apt/history.log >> pkges_install.log


de mannière à conserver automatiquement la liste des paquets installés manuellement sur le système.

L'emplacement du fichier pkges_install.log pourrait être :
  • /var/log/apt/
  • /root/
  • /home/admin/
cela n'a guère d'importance.


J'ai trouvé cette configuration de la rotation des logs :

Code : Tout sélectionner

# cat /etc/logrotate.conf
# see "man logrotate" for details

# global options do not affect preceding include directives

# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
#dateext

# uncomment this if you want your log files compressed
#compress

# packages drop log rotation information into this directory
include /etc/logrotate.d

# system-specific logs may also be configured here.


et surtout :

Code : Tout sélectionner

# cat /etc/logrotate.d/apt
/var/log/apt/term.log {
	rotate 12
	monthly
	compress
	missingok
	notifempty
}

/var/log/apt/history.log {
	rotate 12
	monthly
	compress
	missingok
	notifempty
}




Ma demande

Pouvez-vous me confirmer que ça va le faire,
si j'ajoute dans /etc/logrotate.d/apt en fin de la 2de partie (/var/log/apt/history.log) :

Code : Tout sélectionner

    prerotate

        /usr/bin/grep -iE 'apt.*install' /var/log/apt/history.log >> /var/log/apt/pkges_install.log
        
    endscript

ou peut-être vaut-il mieux utiliser ${1} pour indiquer le chemin du journal ???


Si possible, j'aimerais bien pourvoir tester cela en conditions réelles ... dans < 36h



Merci.
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
vv222
Membre actif
Membre actif
Messages : 852
Inscription : 18 avr. 2016, 20:14
Contact :
Status : Hors-ligne

dezix a écrit : 28 juin 2022, 13:21 je voudrais lancer automatiquement la commande :

grep -iE 'apt.*install' /var/log/apt/history.log >> pkges_install.log


de mannière à conserver automatiquement la liste des paquets installés manuellement sur le système.
À savoir que tu peux déjà obtenir cette liste, avec :

Code : Tout sélectionner

apt list --manual-installed
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Salut!

Merci pour cette option :
vv222 a écrit : 28 juin 2022, 14:18 apt list --manual-installed
que je ne connaissais pas
et que je n'ai pas trouvé dans mes manuels ; quelle est ta source ?

Elle liste les paquets qui sont marqués "installé manuellement" dans p.ex Synaptic,
et que je ne savais trouver avec une commande... et pour cause :040:

Mais ce n'est pas exactement ce que je veux,
car ma commande n'affiche que les commandes que j'ai passées manuellement : apt[-get] install ...
ce qui me suffit pour ne garder qu'une trace de mes interventions.

Je vais aussi tenir une liste équivalente pour les *upgrade

Question annexe

Une idée simple pour récupérer d'un jet aussi la ligne du dessus (date)

Code : Tout sélectionner

Start-Date: 2022-06-28  15:19:29
Commandline: apt-get dist-upgrade
car pour les MàJ c'est plus intéressant d'avoir aussi le moment précis ...
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

en fait :

apt list --manual-installed est exactement équivalent à apt list --installed | grep -v automatic
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Auto réponse à :
dezix a écrit : 28 juin 2022, 16:15 Question annexe

Une idée simple pour récupérer d'un jet aussi la ligne du dessus (date)
:rtfm: :003:


Réponse : grep -B <nbre de lignes avant>
ce qui donne :

Code : Tout sélectionner

grep -B 1 -iE 'apt.*install' /var/log/apt/history.log        
Start-Date: 2022-06-09  21:28:55
Commandline: apt install figlet
--
Start-Date: 2022-06-18  16:48:42
Commandline: apt install openssh-server
--
Start-Date: 2022-06-21  07:20:10
Commandline: apt install par
--
Start-Date: 2022-06-21  07:46:25
Commandline: apt install dillo
--
Start-Date: 2022-06-28  15:20:18
Commandline: apt install apt-doc

**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
vv222
Membre actif
Membre actif
Messages : 852
Inscription : 18 avr. 2016, 20:14
Contact :
Status : Hors-ligne

dezix a écrit : 28 juin 2022, 16:15 je n'ai pas trouvé dans mes manuels ; quelle est ta source ?
L’auto-complétion :

Code : Tout sélectionner

$ apt list --
--all-versions      --manual-installed  --upgradable
--installed         --target-release    --verbose
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

vv222 a écrit : 30 juin 2022, 09:19L’auto-complétion

Ah! Oui!

Je n'y pense jamais,
pour ceux qui nous lisent :

Taper : [Tab]+[Tab] (2x Tabulation) après le début de la commande

ici => [apt list --]+[Tab]+[Tab]
**Simple Utilisateur** -- Debian stable - XFCE
MicP
Modérateur
Modérateur
Messages : 896
Inscription : 16 avr. 2016, 22:14
Status : Hors-ligne

Bonjour

Voir aussi le manuel de la commande apt

Code : Tout sélectionner

man --pager='less -p "list$"' apt
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Eh! eh! pas mal le coup :

Code : Tout sélectionner

$ man --pager='less -p "^[ ]*-ppattern "' less
dommage qu'il faille connaître d'avance la structure (remarquable) de la ligne ciblée.

Soit dit en passant, je n'avais jamais trop creusé le manuel de less au delà de l'option -N... c'est copieux !
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Bonne nouvelle ça fonctionne comme prévu,
j'ai attendu les 12 coups tel un gamin le soir de Noël :lol:

Résultat des courses :

Code : Tout sélectionner

$ cd /var/log/apt

$ ls -lh
total 72K
-rw-r----- 1 root root  16K Jun 28 09:55 eipp.log.xz
-rw-r--r-- 1 root root    0 Jul  1 00:00 history.log
-rw-r--r-- 1 root root 5.4K Jun 28 09:55 history.log.1.gz
-rw-r--r-- 1 root root  954 Jul  1 00:00 pkges_install.log
-rw-r--r-- 1 root root  15K Jul  1 00:00 sys_upgrades.log
-rw-r----- 1 root adm     0 Jul  1 00:00 term.log
-rw-r----- 1 root adm   27K Jun 28 09:55 term.log.1.gz

$ head pkges_install.log
Start-Date: 2022-06-06  19:11:42
Commandline: apt install git
--
Start-Date: 2022-06-06  19:12:32
Commandline: apt install etckeeper
--
Start-Date: 2022-06-12  07:07:08
Commandline: apt install man-db
--
Start-Date: 2022-06-16  09:44:52
... encore un petit pas pour ma pomme :yahoo:

Merci

:006:
**Simple Utilisateur** -- Debian stable - XFCE
Répondre