Abilitazione degli aggiornamenti automatici da uno script di shell


17

Ho uno script di shell per configurare automaticamente le nuove macchine virtuali Ubuntu per i miei scopi. Vorrei installare e abilitare questo script unattended-upgrades, ma non riesco a capire come farlo senza l'interazione dell'utente.

Il solito modo per abilitare gli aggiornamenti è dpkg-reconfigure unattended-upgrades, ma ovviamente è interattivo. Il front-end non interattivo evita di porre qualsiasi domanda, e il front-end del testo sembra vincolato e determinato a fare il suo I / O con tty e non con stdin / stdout.


1
Non ho mai usato questo strumento prima, ma sembra che abilitarlo scriva un 1 sulle due righe nel file /etc/apt/apt.conf.d/20auto-upgrades. Se scrivi manualmente quel file funzionerà?
Mfisch,

Risposte:


20

Basta fare una copia di /etc/apt/apt.conf.d/20auto-upgrades dopo averlo configurato come preferisci e rilasciarlo in posizione sul tuo computer di destinazione. Potresti incorporarlo nel tuo script, oppure puoi risincronizzarlo o inserirlo da un server o qualsiasi altra cosa.

Quindi in pratica la tua sceneggiatura potrebbe fare qualcosa del genere:

apt-get install unattended-upgrades
wget -O /etc/apt/apt.conf.d/20auto-upgrades http://myserver.mytld/confs/20auto-upgrades
/etc/init.d/unattended-upgrades restart

Non c'è davvero alcun motivo per scimmiottare con lo script dpkg-reconfigure.

Se non vuoi recuperare il file conf da un server remoto, è MOLTO molto breve e semplice: la versione predefinita, che recupera e installa solo gli aggiornamenti di sicurezza, ha il seguente aspetto:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Quindi puoi semplicemente fare eco a quelle linee nel file di configurazione direttamente con il seguente:

echo -e "APT::Periodic::Update-Package-Lists \"1\";\nAPT::Periodic::Unattended-Upgrade \"1\";\n" > /etc/apt/apt.conf.d/20auto-upgrades

1

Se si desidera utilizzare dpkg-reconfigure, è possibile impostare il valore con "debconf-set-selections", quindi riconfigurarlo in modo non interattivo.

echo "unattended-upgrades       unattended-upgrades/enable_auto_updates boolean true" | debconf-set-selections; dpkg-reconfigure -f noninteractive unattended-upgrades

0

Devi usare sudo per fare eco /etc/apt/apt.conf.d/20auto-upgrades

if [[ ! -f /etc/apt/apt.conf.d/20auto-upgrades.bak ]]; then
    sudo cp /etc/apt/apt.conf.d/20auto-upgrades /etc/apt/apt.conf.d/20auto-upgrades.bak
    sudo rm /etc/apt/apt.conf.d/20auto-upgrades
    echo "APT::Periodic::Update-Package-Lists \"1\";
    APT::Periodic::Download-Upgradeable-Packages \"1\";
    APT::Periodic::AutocleanInterval \"30\";
    APT::Periodic::Unattended-Upgrade \"1\";" | sudo tee --append /etc/apt/apt.conf.d/20auto-upgrades
fi

0
dpkg-reconfigure -f noninteractive unattended-upgrades

0

Vorrei suggerire di inserire i parametri di configurazione per configurare gli aggiornamenti automatici.

sudo touch /etc/apt/apt.conf.d/20auto-upgrades

echo "APT::Periodic::Update-Package-Lists "1"" >> /etc/apt/apt.conf.d/20auto-upgrades

echo "APT::Periodic::Unattended-Upgrade "1" " >> /etc/apt/apt.conf.d/20auto-upgrades

Allo stesso modo è possibile configurare / aggiungere parametri in base alle proprie esigenze nel file conf /etc/apt/apt.conf.d/50unattended-upgrades.

Non dimenticare di riavviare il servizio per applicare le modifiche.

/etc/init.d/unattended-upgrades restart
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.