[RISOLTO] Esecuzione comando dopo aggiornamento linux-image

Bash, Perl, Python, Ruby, ...
Rispondi
lumos
Newbie
Newbie
Messaggi: 7
Iscritto il: 05/05/2012, 19:27

[RISOLTO] Esecuzione comando dopo aggiornamento linux-image

Messaggio da lumos »

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

Messaggio da lumos »

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
Aki
Hero Member
Hero Member
Messaggi: 9970
Iscritto il: 27/12/2007, 16:59

Re: Esecuzione comando all'aggiornamento della linux-image

Messaggio da Aki »

Non credo funzioni. In ogni caso, non capisco l’esigenza specifica.
⢀⣴⠾⠻⢶⣦⠀
⣾⠁⢠⠒⠀⣿⡁ Debian - The universal operating system
⢿⡄⠘⠷⠚⠋⠀ https://www.debian.org
⠈⠳⣄⠀
lumos
Newbie
Newbie
Messaggi: 7
Iscritto il: 05/05/2012, 19:27

Re: Esecuzione comando all'aggiornamento della linux-image

Messaggio da lumos »

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
Aki
Hero Member
Hero Member
Messaggi: 9970
Iscritto il: 27/12/2007, 16:59

Re: Esecuzione comando all'aggiornamento della linux-image

Messaggio da Aki »

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ò.
⢀⣴⠾⠻⢶⣦⠀
⣾⠁⢠⠒⠀⣿⡁ Debian - The universal operating system
⢿⡄⠘⠷⠚⠋⠀ https://www.debian.org
⠈⠳⣄⠀
Aki
Hero Member
Hero Member
Messaggi: 9970
Iscritto il: 27/12/2007, 16:59

Re: Esecuzione comando all'aggiornamento della linux-image

Messaggio da Aki »

Nota di moderazione: in assenza di riscontro da parte dell'utente e stante il suggerimento fornito, si contrassegna la discussione come risolta.
⢀⣴⠾⠻⢶⣦⠀
⣾⠁⢠⠒⠀⣿⡁ Debian - The universal operating system
⢿⡄⠘⠷⠚⠋⠀ https://www.debian.org
⠈⠳⣄⠀
Rispondi