• 0
Conéctate para seguir esto  
Seguidores 0
Pacman

Ayuda GNU/Linux
Ayuda con unattended-upgrades

Pregunta

Buenas linuxeros, abro este hilo por que tengo un problemilla con unattended-upgrades, como ya he dicho alguna vez tengo un servidor montado en casa con debian estable, desde siempre he utilizado un simple script que arrancaba automáticamente (con cron) todos los dias a las 00:00 para actualizar los paquetes.

El caso es que siempre he tenido problemas con esto cuando de vez en cuando se actualizaba algo que pedía algún tipo de confirmación, se bloqueaba dpkg y era un engorro, por lo que pensé en utilizar algo más profesional como unattended-upgrades, he instalado también apt-listchanges para que me envié el resultado por correo y tener algo de control.

 

Mi /etc/apt/apt.conf.d/50unattended-upgrades contiene:

// Unattended-Upgrade::Origins-Pattern controls which packages are
// upgraded.
//
// Lines below have the format format is "keyword=value,...".  A
// package will be upgraded only if the values in its metadata match
// all the supplied keywords in a line.  (In other words, omitted
// keywords are wild cards.) The keywords originate from the Release
// file, but several aliases are accepted.  The accepted keywords are:
//   a,archive,suite (eg, "stable")
//   c,component     (eg, "main", "crontrib", "non-free")
//   l,label         (eg, "Debian", "Debian-Security")
//   o,origin        (eg, "Debian", "Unofficial Multimedia Packages")
//   n,codename      (eg, "jessie", "jessie-updates")
//     site          (eg, "http.debian.net")
// The available values on the system are printed by the command
// "apt-cache policy", and can be debugged by running
// "unattended-upgrades -d" and looking at the log file.
//
// Within lines unattended-upgrades allows 2 macros whose values are
// derived from /etc/debian_version:
//   ${distro_id}            Installed origin.
//   ${distro_codename}      Installed codename (eg, "jessie")
Unattended-Upgrade::Origins-Pattern {
        // Codename based matching:
        // This will follow the migration of a release through different
        // archives (e.g. from testing to stable and later oldstable).
//      "o=Debian,n=jessie";
//      "o=Debian,n=jessie-updates";
//      "o=Debian,n=jessie-proposed-updates";
//      "o=Debian,n=jessie,l=Debian-Security";

        // Archive or Suite based matching:
        // Note that this will silently match a different release after
        // migration to the specified archive (e.g. testing becomes the
        // new stable).
      "o=Debian,a=stable";
      "o=Debian,a=stable-updates";
      "o=Debian,a=proposed-updates";
        "origin=Debian,codename=${distro_codename},label=Debian-Security";
};

// List of packages to not update (regexp are supported)
Unattended-Upgrade::Package-Blacklist {
//	"vim";
//	"libc6";
//	"libc6-dev";
//	"libc6-i686";
};

// This option allows you to control if on a unclean dpkg exit
// unattended-upgrades will automatically run 
//   dpkg --force-confold --configure -a
// The default is true, to ensure updates keep getting installed
//Unattended-Upgrade::AutoFixInterruptedDpkg "false";

// Split the upgrade into the smallest possible chunks so that
// they can be interrupted with SIGUSR1. This makes the upgrade
// a bit slower but it has the benefit that shutdown while a upgrade
// is running is possible (with a small delay)
//Unattended-Upgrade::MinimalSteps "true";

// Install all unattended-upgrades when the machine is shuting down
// instead of doing it in the background while the machine is running
// This will (obviously) make shutdown slower
//Unattended-Upgrade::InstallOnShutdown "true";

// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that you
// have a working mail setup on your system. A package that provides
// 'mailx' must be installed. E.g. "user@example.com"
Unattended-Upgrade::Mail "root";

// Set this value to "true" to get emails only on errors. Default
// is to always send a mail if Unattended-Upgrade::Mail is set
//Unattended-Upgrade::MailOnlyOnError "true";

// Do automatic removal of new unused dependencies after the upgrade
// (equivalent to apt-get autoremove)
//Unattended-Upgrade::Remove-Unused-Dependencies "false";

// Automatically reboot *WITHOUT CONFIRMATION* if
//  the file /var/run/reboot-required is found after the upgrade 
Unattended-Upgrade::Automatic-Reboot "true";

// If automatic reboot is enabled and needed, reboot at the specific
// time instead of immediately
// Default: "now"
Unattended-Upgrade::Automatic-Reboot-Time "now";

// Use apt bandwidth limit feature, this example limits the download
// speed to 70kb/sec
//Acquire::http::Dl-Limit "70";

/etc/apt/apt.conf.d/20auto-upgrades contiene:

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

/etc/apticron/apticron.conf contiene:

# apticron.conf
#
# set EMAIL to a space separated list of addresses which will be notified of
# impending updates
#
EMAIL="francisco.dominguez.lerma@gmail.com"

#
# Set DIFF_ONLY to "1" to only output the difference of the current run
# compared to the last run (ie. only new upgrades since the last run). If there
# are no differences, no output/email will be generated. By default, apticron
# will output everything that needs to be upgraded.
#
DIFF_ONLY="1"

#
# Set LISTCHANGES_PROFILE if you would like apticron to invoke apt-listchanges
# with the --profile option. You should add a corresponding profile to
# /etc/apt/listchanges.conf
#
LISTCHANGES_PROFILE="apticron"

#
# From hostname manpage: "Displays  all FQDNs of the machine. This option
# enumerates all configured network addresses on all configured network inter‐
# faces, and translates them to DNS domain names. Addresses that cannot be
# translated (i.e. because they do not have an appro‐ priate  reverse DNS
# entry) are skipped. Note that different addresses may resolve to the same
# name, therefore the output may contain duplicate entries. Do not make any
# assumptions about the order of the output."
#
# ALL_FQDNS="1"

#
# Set SYSTEM if you would like apticron to use something other than the output
# of "hostname -f" for the system name in the mails it generates. This option
# overrides the ALL_FQDNS above.
#
SYSTEM="server.hispagnu.org"

#
# Set IPADDRESSNUM if you would like to configure the maximal number of IP
# addresses apticron displays. The default is to display 1 address of each
# family type (inet, inet6), if available.
#
# IPADDRESSNUM="1"

#
# Set IPADDRESSES to a whitespace separated list of reachable addresses for
# this system. By default, apticron will try to work these out using the
# "ip" command
#
# IPADDRESSES="192.0.2.1 2001:db8:1:2:3::1"

#
# Set NOTIFY_HOLDS="0" if you don't want to be notified about new versions of
# packages on hold in your system. The default behavior is downloading and
# listing them as any other package.
#
# NOTIFY_HOLDS="0"

#
# Set NOTIFY_NEW="0" if you don't want to be notified about packages which
# are not installed in your system. Yes, it's possible! There are some issues
# related to systems which have mixed stable/unstable sources. In these cases
# apt-get will consider for example that packages with "Priority:
# required"/"Essential: yes" in unstable but not in stable should be installed,
# so they will be listed in dist-upgrade output. Please take a look at
# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=531002#44
#
# NOTIFY_NEW="0"

#
# Set NOTIFY_NO_UPDATES="0" if you don't want to be notified when there is no
# new versions. Set to 1 could assure you that apticron works well.
#
# NOTIFY_NO_UPDATES="0"

#
# Set CUSTOM_SUBJECT if you want to replace the default subject used in
# the notification e-mails. This may help filtering/sorting client-side e-mail.
# If you want to use internal vars please use single quotes here. Ex:
# $CUSTOM_SUBJECT='[apticron] $SYSTEM: $NUM_PACKAGES package update(s)'
#
# CUSTOM_SUBJECT=""

# Set CUSTOM_NO_UPDATES_SUBJECT if you want to replace the default subject used
# in the no update notification e-mails. This may help filtering/sorting
# client-side e-mail.
# If you want to use internal vars please use single quotes here. Ex:
# $CUSTOM_NO_UPDATES_SUBJECT='[apticron] $SYSTEM: no updates'
#
# CUSTOM_NO_UPDATES_SUBJECT=""

#
# Set CUSTOM_FROM if you want to replace the default sender by changing the
# 'From:' field used in the notification e-mails. Your default sender will
# be something like root@server.hispagnu.org.
#
# CUSTOM_FROM=""

Mi pregunta es ¿Donde especifico cada cuanto intenta actualizarse?, tan sólo quiero que intente actualizarse a diario, a poder ser a las 00:00, que se ejecute automáticamente como servicio (al reiniciarse), y que me mande por correo los resultados, hayan actualizaciones o no. Estoy muy perdido con esto de unattended-upgrades.

 

Gracias.

pacoeloyo, Rohlling, lupi y 1 otro le gusta esto

Compartir este post


Enlace al post
Compartir en otros sitios

9 respuestas a esta pregunta

  • 0

Al final está resuelto, esta mañana entro en mi correo y me encuentro esto:

Valor devuelto por unattended-upgrade: True

Packages that were upgraded:
 bind9 bind9-host bind9utils dnsutils host libbind9-90
 libdns-export100 libdns100 libirs-export91 libisc-export95 libisc95
 libisccc90 libisccfg-export90 libisccfg90 liblwres90

Registro de unattended-upgrades:
Paquetes inicialmente bloqueados:
Initial whitelisted packages:
Iniciando script de unattended-upgrades
Fuentes permitidas: ['o=Debian,a=stable', 'o=Debian,a=stable-updates', 'o=Debian,a=proposed-updates', 'origin=Debian,codename=jessie,label=Debian-Security']
Packages that will be upgraded: bind9 bind9-host bind9utils dnsutils host libbind9-90 libdns-export100 libdns100 libirs-export91 libisc-export95 libisc95 libisccc90 libisccfg-export90 libisccfg90 liblwres90
Escribiendo el registro de dpkg en «/var/log/unattended-upgrades/unattended-upgrades-dpkg.log»
Se han instalado todas las actualizaciones

Vamos, que realmente te informa de cada paquete que actualiza, pero se ve que aunque no actualice ningún paquete, si hace un update te manda el resultado, está bien.

Shiba87 y Rohlling le gusta esto

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0

No he utilizado unattended-upgrades, así que voy también un poco perdido, pero mirando un poco en Debian Wiki he encontrado un script de ejemplo bastante interesante:

 

/etc/apt/apt.conf.d/02periodic (aunque dónde esté es lo de menos)

// Control parameters for cron jobs by /etc/cron.daily/apt //


// Enable the update/upgrade script (0=disable)
APT::Periodic::Enable "1";


// Do "apt-get update" automatically every n-days (0=disable)
APT::Periodic::Update-Package-Lists "1";


// Do "apt-get upgrade --download-only" every n-days (0=disable)
APT::Periodic::Download-Upgradeable-Packages "1";


// Run the "unattended-upgrade" security upgrade script
// every n-days (0=disabled)
// Requires the package "unattended-upgrades" and will write
// a log in /var/log/unattended-upgrades
APT::Periodic::Unattended-Upgrade "1";


// Do "apt-get autoclean" every n-days (0=disable)
APT::Periodic::AutocleanInterval "21";


// Send report mail to root
//     0:  no report             (or null string)
//     1:  progress report       (actually any string)
//     2:  + command outputs     (remove -qq, remove 2>/dev/null, add -d)
//     3:  + trace on
APT::Periodic::Verbose "2";
https://wiki.debian.org/UnattendedUpgrades#automatic_call_via_.2Fetc.2Fapt.2Fapt.conf.d.2F02periodic
Pacman, lupi, pacoeloyo y 1 otro le gusta esto

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0

No he utilizado unattended-upgrades, así que voy también un poco perdido, pero mirando un poco en Debian Wiki he encontrado un script de ejemplo bastante interesante:

 

/etc/apt/apt.conf.d/02periodic (aunque dónde esté es lo de menos)

// Control parameters for cron jobs by /etc/cron.daily/apt //


// Enable the update/upgrade script (0=disable)
APT::Periodic::Enable "1";


// Do "apt-get update" automatically every n-days (0=disable)
APT::Periodic::Update-Package-Lists "1";


// Do "apt-get upgrade --download-only" every n-days (0=disable)
APT::Periodic::Download-Upgradeable-Packages "1";


// Run the "unattended-upgrade" security upgrade script
// every n-days (0=disabled)
// Requires the package "unattended-upgrades" and will write
// a log in /var/log/unattended-upgrades
APT::Periodic::Unattended-Upgrade "1";


// Do "apt-get autoclean" every n-days (0=disable)
APT::Periodic::AutocleanInterval "21";


// Send report mail to root
//     0:  no report             (or null string)
//     1:  progress report       (actually any string)
//     2:  + command outputs     (remove -qq, remove 2>/dev/null, add -d)
//     3:  + trace on
APT::Periodic::Verbose "2";
https://wiki.debian.org/UnattendedUpgrades#automatic_call_via_.2Fetc.2Fapt.2Fapt.conf.d.2F02periodic

 

 

Gracias shiba, ya lo he aplicado y reiniciado el servidor a ver que tal, por lo que entiendo, ese script descarga actualizaciones a diario (sin instalar), las instala también a diario y cada 21 dias hace un apt-get autoclean, vamos lo que yo necesitaba, algo básico.

Rohlling, Shiba87 y pacoeloyo le gusta esto

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0

Esta mañana el servidor me ha mandado este mensaje:

/etc/cron.daily/apt:
verbose level 2
sleeping for 981 seconds
check_stamp: interval=86400, now=1484002800, stamp=1483916400, delta=86400 (sec)
download updated metadata (success).
send dbus signal (success)
check_stamp: interval=86400, now=1484002800, stamp=1483916400, delta=86400 (sec)
download upgradable (success)
check_stamp: interval=86400, now=1484002800, stamp=1483916400, delta=86400 (sec)
unattended-upgrade (success)
check_stamp: interval=1814400, now=1484002800, stamp=1483916400, delta=86400 (sec)
autoclean (not run)
skip aging since MaxAge is 0

¿Qué quiere decir? ¿Alguien me puede ayudar a interpretarlo?

 

Gracias.

Rohlling y pacoeloyo le gusta esto

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0

Según entiendo: " Todo correcto" :P

Se actualiza la lista de paquetes, se descargan las actualizaciones, se ejecuta unattended-upgrade y el autoclean, en esta ocasión, no se ejecuta.

La señal enviada a dBus no sé bien en que consiste. Pero vamos, que también satisfactoria

Rohlling y pacoeloyo le gusta esto

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0

Según entiendo: " Todo correcto" :P

 

Se actualiza la lista de paquetes, se descargan las actualizaciones, se ejecuta unattended-upgrade y el autoclean, en esta ocasión, no se ejecuta.

La señal enviada a dBus no sé bien en que consiste. Pero vamos, que también satisfactoria

 

Um.. ¿Pero como sé que es lo que se ha actualizado? Quiero decir, si se actualiza apache y un par de paquetes más, ¿donde me lo indica?

Rohlling le gusta esto

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0

Siendo totalmente dependiente de APT, todos los paquetes instalados, borrados, actualizado, etc, van a aparecer sí o sí en el historial de APT

/var/log/apt/history.log
 

No sé si variar el nivel de reporte de unattended-upgrades añadirá más información a los mensajes, aunque no parece el caso :hmmm:

 

Pacman y Rohlling le gusta esto

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0

Siendo totalmente dependiente de APT, todos los paquetes instalados, borrados, actualizado, etc, van a aparecer sí o sí en el historial de APT

/var/log/apt/history.log

 

No sé si variar el nivel de reporte de unattended-upgrades añadirá más información a los mensajes, aunque no parece el caso :hmmm:

 

 

 

Pues acabo de hacer un cat a ese fichero y no me aparece nada desde haber instalado unattended-upgrades, sólo los últimos paquetes que he instalado yo a mano y cuando actualizaba con cron O.o

Rohlling le gusta esto

Compartir este post


Enlace al post
Compartir en otros sitios

Registra una cuenta o conéctate para comentar

Debes ser un miembro de la comunidad para dejar un comentario

Crear una cuenta

Regístrate en nuestra comunidad. ¡Es fácil!


Registrar una cuenta nueva

Iniciar Sesión

¿Ya tienes cuenta? Conéctate aquí.


Iniciar Sesión
Conéctate para seguir esto  
Seguidores 0