¿Cómo hacer que en la CLI verifique si hay actualizaciones cada 4 semanas e instalarlas automáticamente sin tener que ir a las fuentes de software?

10

Tengo un conjunto de comandos personalizados que ejecuto en mis computadoras después de instalarlos. ¿Cómo hago para que Ubuntu busque actualizaciones cada 4 semanas y las instalo automáticamente al verificar?

Necesitaría hacer esto a través de la línea de comando para poder configurarlo para los usuarios habituales cuando configuro sus computadoras.

El primer comando hará que el administrador de actualizaciones busque actualizaciones cada 2 semanas porque no siempre vienen tanto y para ahorrar el ancho de banda de los servidores Ubuntu.

También necesito configurarlo para que los usuarios no necesiten hacer clic para instalar actualizaciones, ya que es agotador cada vez que ayudo a un amigo a configurar una computadora.

Canguro
fuente

Respuestas:

10

Primero, habilite actualizaciones automáticas como esta:

sudo apt-get install unattended-upgrades

Luego necesita editar su configuración, escriba

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

(reemplace nanocon su editor de texto preferido si lo desea)

El archivo se ve así:

Unattended-Upgrade::Allowed-Origins {
        "Ubuntu maverick-security";
//      "Ubuntu maverick-updates";
};

Esto //significa que esta línea es un comentario y que el programa no la tendrá en cuenta. Elimine los trazos para incluir actualizaciones de lanzamiento estables además de las correcciones de seguridad. Además, reemplace maverickcon la versión de Ubuntu que está ejecutando.

Para establecer el intervalo en el que el sistema busca actualizaciones, edite el /etc/apt/apt.conf.d/10periodicarchivo con un editor de texto:

APT::Periodic::Update-Package-Lists "14";
APT::Periodic::Download-Upgradeable-Packages "14";
APT::Periodic::AutocleanInterval "14";
APT::Periodic::Unattended-Upgrade "14";

En este ejemplo, el sistema se actualiza cada dos semanas.

Para obtener una explicación más detallada, consulte Actualizaciones automáticas en la guía del servidor Ubuntu.


Tenga en cuenta que la respuesta de papukaija es hablar sobre el intervalo en el que aparece el diálogo del Administrador de actualizaciones en su pantalla, supongo que eso no es lo que quiere, pero no estoy seguro. :)

Stefano Palazzo
fuente
No es necesario que aparezcan cuadros de diálogo y no va en 1 línea. Si configuré en las fuentes de software 2 semanas para verificar, ¿es posible que aparezca el cuadro de diálogo de actualización antes o después? Es necesario que con 1 línea sea posible configurar que el usuario ni siquiera sepa que tiene el sistema actualizado cada 4 semanas y que no necesita ver ninguna actualización preguntando y automáticamente se acaba de instalar. Por lo tanto, no necesito configurarlo manualmente con el mouse en las fuentes de software.
Kangarooo
No estoy seguro de entenderte. Puede deshabilitar las notificaciones de actualización yendo a Sistema → Preferencias → Aplicaciones de inicio y quitando la marca de verificación en "Notificador de actualización". ¿Es eso lo que querías decir? Además, por supuesto, puede configurarlo en "30" en lugar de "14" días (o cualquier cantidad que desee)
Stefano Palazzo
¿Y eso también se puede hacer con una línea? En caso afirmativo, eso también es bueno si no, no es lo principal que quería. Lo principal es superar ir a las configuraciones de fuentes de software para cambiar la verificación de actualizaciones y qué hacer. Quiero poner un cheque cada 28 días e instalar actualizaciones sin preguntar nada en la terminal para que sea más rápido.
Kangarooo
Un comando de línea en mi respuesta: apt-get update && apt-get upgrade -y
luri
@luri de eso no se trata esta pregunta
Stefano Palazzo
2

Si quiere decir actualizar todo "actualizable", es decir, actualizar TODOS sus paquetes, supongo que podría cron (dentro del cron raíz) que cada 28 días apt-get update && apt-get upgrade -yse ejecute.

Algunas personas tienen problemas con los trabajos crond debido a una PATHconfiguración restrictiva . Si tiene algún problema, puede definirlo PATHal principio del crontab -earchivo (como se sugiere en CronHowto )

Además, para comprobar que todo va bien, registraría los resultados, así:

root@PORTATIL:/var/log$ crontab -l
* * */2 * * /usr/share/myupdate.sh > /var/log/myupdate.log

myupdate.sh podría ser tan simple como esto:

#!/bin/bash
#Testing updates
echo "$(date) Crond myupdate sarting."
apt-get update -y
apt-get upgrade -y
echo "$(date)Crond myupdate finished."
luri
fuente
Esto no funciona para mi. Cuando recibo mis registros cron, me aptitude -y safe-upgradequejo de que necesito un tty controlador y luego un montón de errores de ruta. Tal vez debería hacer una pregunta ..
djeikyb
¿Lo configuró dentro del cron raíz?
luri
Sí. Estaba fallando debido a algunos problemas de ruta diferentes, así que hice un script en / root / bin, con #! / Bin / bash, y la ruta completa a apt-get. Funciona mejor, pero aún no se actualiza.
djeikyb
Publique los errores en el registro ... o lo que sea que falle
luri
Hice una pregunta por separado: askubuntu.com/q/23795/8515
djeikyb
1

Puede cambiar el intervalo entre el momento en que se ejecuta update-manager abriendo gconf-editor (por ejemplo, con Alt + F2 y escribiendo gconf-editor). Entonces localizar /apps/update-notifier.

El intervalo se define en clave regular_auto_launch_intervaldonde el valor es el número de días. Creo que este método no afecta el actualizador automático no gráfico (actualizaciones desatendidas).

Tenga en cuenta que Ubuntu puede no instalar automáticamente las actualizaciones de seguridad debido a un error .

papukaija
fuente
44
Esta es la versión de línea de comando de esta respuesta: gconftool -s /apps/update-notifier/regular_auto_launch_interval --type int 7(donde 7 es el intervalo en días)
Stefano Palazzo
Acabo de comprobar que ya era 7. Pero en las fuentes de software se establece 2 semanas. Tal vez es en otro lugar?
Kangarooo
0

Puse gconftool -s /apps/update-notifier/regular_auto_launch_interval --type int 1y se abre todos los días mostrando que no he instalado actualizaciones. ¿Se abre si no hay nuevas actualizaciones? Entonces, ¿hacer una actualización automática cada 4 semanas no haría aparecer esto? Entonces, ¿cómo hacer con CLI para instalar automáticamente las actualizaciones cada comprobación cada 4 semanas? Eso es lo que quiero. Al no ir a las fuentes de software y hacerlo con el mouse. Y al hacerlo, es posible porque no se puede poner más de 2 semanas allí.

Canguro
fuente