[RISOLTO] Esecuzione comando dopo aggiornamento linux-image

Bash, Perl, Python, Ruby, ...

[RISOLTO] Esecuzione comando dopo aggiornamento linux-image

Messaggioda lumos » 20/02/2020, 16:01

Ciao a tutti,

necessiterei di un aiuto per realizzare uno script per la mia Debian Buster, che esegua un comando solo quando viene aggiornata la linux-image.
Attualmente nella directory cron.daily, viene eseguito il comando di aggiornamento ed upgrade:

Codice: Seleziona tutto
#!/bin/sh
export DEBIAN_FRONTEND=noninteractive
apt update >/dev/null 2>&1
apt upgrade -y >/dev/null 2>&1
apt autoclean &>/dev/null
exit 0


Praticamente, dopo l'upgrade, necessito che venga eseguito un comando (diciamo reboot per semplicità), ma che questo comando venga eseguito solo se la linux-image viene aggiornata ad esempio:

dalla linux-image-4.19.0-6-amd6

alla linux-image-4.19.0-8-amd6

Qualcuno mi potrebbe aiutare per favore?

Grazie
lumos
Newbie
Newbie
 
Messaggi: 7
Iscritto il: 05/05/2012, 19:27

Re: Esecuzione comando all'aggiornamento della linux-image

Messaggioda lumos » 20/02/2020, 18:39

Avrei pensato ad una cosa del genere, secondo voi può andare bene?

Codice: Seleziona tutto
#!/bin/sh
export DEBIAN_FRONTEND=noninteractive
kernel1="uname -r"
apt update >/dev/null 2>&1
apt upgrade -y >/dev/null 2>&1
apt autoclean &>/dev/null
kernel2="uname -r"

if [ "x$kernel1" == "x$kernel2" ]
then
  echo kernel match
else
reboot
fi
exit 0



Grazie
lumos
Newbie
Newbie
 
Messaggi: 7
Iscritto il: 05/05/2012, 19:27

Re: Esecuzione comando all'aggiornamento della linux-image

Messaggioda Aki » 20/02/2020, 20:48

Non credo funzioni. In ogni caso, non capisco l’esigenza specifica.
Aki
Global Moderator
Global Moderator
 
Messaggi: 9187
Iscritto il: 27/12/2007, 16:59

Re: Esecuzione comando all'aggiornamento della linux-image

Messaggioda lumos » 21/02/2020, 8:42

Cerco di spiegare meglio quello che mi serve:

Attualmente ho uno script in /etc/cron.daily/ che fa l'update e l'upgrade dei pacchetti in modo automatico (e che ha sempre funzionato).
Nello specifico, l'attuale script è:

Codice: Seleziona tutto
#!/bin/sh
export DEBIAN_FRONTEND=noninteractive
apt update >/dev/null 2>&1
apt upgrade -y >/dev/null 2>&1
apt autoclean &>/dev/null
exit 0


Ora necessito di integrarlo in modo che, nel caso durante l'update / upgrade, venga aggiornata la linux-image, questo script esegua un comando specifico di una mia applicazione.
Per semplicità ho scritto reboot, ma il comando è un altro e non ha importanza quale esso sia.
Necessiterei quindi di integrare lo script con una funziona di comparazione nella quale, se si verifica l'upgrade del pacchetto linux-image, venga eseguito il comando reboot.

Mi potete aiutare per favore?

Grazie
lumos
Newbie
Newbie
 
Messaggi: 7
Iscritto il: 05/05/2012, 19:27

Re: Esecuzione comando all'aggiornamento della linux-image

Messaggioda Aki » 22/02/2020, 6:50

Immagino ci siano diversi modi per farlo, ma forse dal momento che cerchi una soluzione “cotta e mangiata” potresti calcolare un hash sull’immagine binaria del kernel prima e dopo l’aggiornamento: se dopo l’installazione sono diverse, il kernel è stato aggiornato. Per calcolare l'hash di un'immagine binaria, ad esempio, puoi usare le seguenti istruzioni della shell bash:
Codice: Seleziona tutto
kernel1=$(/usr/bin/shasum -b /vmlinuz)

Infine, qualora non avessi particolari esigenze di riservatezza, sarebbe cortese da parte tua spiegare quale finalità ti stai ponendo e/o quale esigenza ti sta portando a far ciò.
Aki
Global Moderator
Global Moderator
 
Messaggi: 9187
Iscritto il: 27/12/2007, 16:59

Re: Esecuzione comando all'aggiornamento della linux-image

Messaggioda Aki » 01/03/2020, 13:29

Nota di moderazione: in assenza di riscontro da parte dell'utente e stante il suggerimento fornito, si contrassegna la discussione come risolta.
Aki
Global Moderator
Global Moderator
 
Messaggi: 9187
Iscritto il: 27/12/2007, 16:59


Torna a Scripting

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

cron