forked from evolix/ansible-roles
listupgrade: fix wget error + shellcheck cleanup
This commit is contained in:
parent
56af68e5b3
commit
cae0de17df
|
@ -32,7 +32,7 @@ The **patch** part changes incrementally at each release.
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
* ldap: fix edge cases where passwords were not set/get properly
|
* ldap: fix edge cases where passwords were not set/get properly
|
||||||
* listupgrade: print error if wget fails
|
* listupgrade: fix wget error + shellcheck cleanup
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
|
|
||||||
|
|
|
@ -16,46 +16,52 @@ packagesHold=$(mktemp --tmpdir=/tmp evoupdate.XXX)
|
||||||
servicesToRestart=$(mktemp --tmpdir=/tmp evoupdate.XXX)
|
servicesToRestart=$(mktemp --tmpdir=/tmp evoupdate.XXX)
|
||||||
template=$(mktemp --tmpdir=/tmp evoupdate.XXX)
|
template=$(mktemp --tmpdir=/tmp evoupdate.XXX)
|
||||||
clientmail=$(grep EVOMAINTMAIL /etc/evomaintenance.cf | cut -d'=' -f2)
|
clientmail=$(grep EVOMAINTMAIL /etc/evomaintenance.cf | cut -d'=' -f2)
|
||||||
mailto=$clientmail
|
mailto="${clientmail}"
|
||||||
date="Ce jeudi entre 18h00 et 23h00."
|
date="Ce jeudi entre 18h00 et 23h00."
|
||||||
hostname=$(grep HOSTNAME /etc/evomaintenance.cf | cut -d'=' -f2)
|
hostname=$(grep HOSTNAME /etc/evomaintenance.cf | cut -d'=' -f2)
|
||||||
hostname=${hostname%%.evolix.net}
|
hostname=${hostname%%.evolix.net}
|
||||||
|
|
||||||
# If hostname is composed with -, remove the first part.
|
# If hostname is composed with -, remove the first part.
|
||||||
if [[ $hostname =~ "-" ]]; then
|
if [[ "${hostname}" =~ "-" ]]; then
|
||||||
hostname=$(echo $hostname | cut -d'-' -f2-)
|
hostname=$(echo "${hostname}" | cut -d'-' -f2-)
|
||||||
fi
|
fi
|
||||||
# Edit $configFile to override some variables.
|
# Edit $configFile to override some variables.
|
||||||
[ -r $configFile ] && . $configFile
|
# shellcheck disable=SC1090,SC1091
|
||||||
|
[ -r "${configFile}" ] && . "${configFile}"
|
||||||
|
|
||||||
# Remove temporary files on exit.
|
# Remove temporary files on exit.
|
||||||
trap "rm $packages $packagesHold $servicesToRestart $template" EXIT
|
# shellcheck disable=SC2064
|
||||||
|
trap "rm ${packages} ${packagesHold} ${servicesToRestart} ${template}" EXIT
|
||||||
|
|
||||||
# Parse line in retrieved upgrade file and ensure there is no malicious values.
|
# Parse line in retrieved upgrade file and ensure there is no malicious values.
|
||||||
get_value() {
|
get_value() {
|
||||||
file="$1"
|
file="$1"
|
||||||
variable="$2"
|
variable="$2"
|
||||||
value="$(grep "^$2:" $1 |head -n 1 |cut -d ':' -f 2 |sed 's/^ //')"
|
value="$(grep "^${variable}:" "${file}" | head -n 1 | cut -d ':' -f 2 | sed 's/^ //')"
|
||||||
if echo "$value" |grep -q -E '^[-.: [:alnum:]]*$'; then
|
|
||||||
echo $value
|
if echo "${value}" | grep -q -E '^[-.: [:alnum:]]*$'; then
|
||||||
|
echo "${value}"
|
||||||
else
|
else
|
||||||
printf >&2 "Error parsing value \"$value\" for variable $variables.\n"
|
printf >&2 "Error parsing value \"%s\" for variable %s.\n" "${value}" "${variable}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Fetch which packages/releases will be upgraded.
|
# Fetch which packages/releases will be upgraded.
|
||||||
fetch_upgrade_info() {
|
fetch_upgrade_info() {
|
||||||
upgradeInfo=$(mktemp --tmpdir=/tmp evoupdate.XXX)
|
upgradeInfo=$(mktemp --tmpdir=/tmp evoupdate.XXX)
|
||||||
wget -q -O $upgradeInfo https://upgrades.evolix.org/upgrade
|
wget --no-check-certificate --quiet --output-document="${upgradeInfo}" https://upgrades.evolix.org/upgrade
|
||||||
|
|
||||||
|
# shellcheck disable=SC2181
|
||||||
if [ "$?" != "0" ]; then
|
if [ "$?" != "0" ]; then
|
||||||
printf >&2 "Error fetching upgrade directives.\n"
|
printf >&2 "Error fetching upgrade directives.\n"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
r_releases="$(get_value $upgradeInfo "releases")"
|
r_releases="$(get_value "${upgradeInfo}" "releases")"
|
||||||
r_skip_releases="$(get_value $upgradeInfo "skip_releases")"
|
r_skip_releases="$(get_value "${upgradeInfo}" "skip_releases")"
|
||||||
r_packages="$(get_value $upgradeInfo "packages")"
|
r_packages="$(get_value "${upgradeInfo}" "packages")"
|
||||||
r_skip_packages="$(get_value $upgradeInfo "skip_packages")"
|
r_skip_packages="$(get_value "${upgradeInfo}" "skip_packages")"
|
||||||
rm $upgradeInfo
|
|
||||||
|
rm "${upgradeInfo}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check if element $element is in (space separated) list $list.
|
# Check if element $element is in (space separated) list $list.
|
||||||
|
@ -63,142 +69,147 @@ is_in() {
|
||||||
list="$1"
|
list="$1"
|
||||||
element="$2"
|
element="$2"
|
||||||
|
|
||||||
for i in $list; do
|
for i in ${list}; do
|
||||||
if [ "$element" = "$i" ]; then
|
if [ "${element}" = "${i}" ]; then
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if [[ "$1" != "--cron" ]]; then
|
if [[ "$1" != "--cron" ]]; then
|
||||||
echo "À quel date/heure allez vous planifier l'envoi ?"
|
echo "À quel date/heure allez vous planifier l'envoi ?"
|
||||||
echo "Exemple : le jeudi 6 mars entre 18h00 et 23h00"
|
echo "Exemple : le jeudi 6 mars entre 18h00 et 23h00"
|
||||||
echo -n "> "
|
echo -n "> "
|
||||||
read date
|
read -r date
|
||||||
echo "À qui envoyer le mail ?"
|
echo "À qui envoyer le mail ?"
|
||||||
echo -n "> "
|
echo -n "> "
|
||||||
read mailto
|
read -r mailto
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Update APT cache and get packages to upgrade and packages on hold.
|
# Update APT cache and get packages to upgrade and packages on hold.
|
||||||
aptUpdateOutput=$(apt update 2>&1 | (egrep -ve '^(Listing|WARNING|$)' -e upgraded -e 'up to date' || true ))
|
aptUpdateOutput=$(apt update 2>&1 | (grep -E -ve '^(Listing|WARNING|$)' -e upgraded -e 'up to date' || true ))
|
||||||
|
|
||||||
if (echo "$aptUpdateOutput" | egrep "^Err(:[0-9]+)? http"); then
|
if echo "${aptUpdateOutput}" | grep -E "^Err(:[0-9]+)? http"; then
|
||||||
echo "FATAL - Not able to fetch all sources (probably a pesky (mini)firewall). Please, fix me"
|
echo "FATAL - Not able to fetch all sources (probably a pesky (mini)firewall). Please, fix me"
|
||||||
exit 100
|
exit 100
|
||||||
fi
|
fi
|
||||||
|
|
||||||
apt-mark showhold > $packagesHold
|
apt-mark showhold > "${packagesHold}"
|
||||||
apt list --upgradable 2>&1 | grep -v -f $packagesHold | egrep -v '^(Listing|WARNING|$)' > $packages
|
apt list --upgradable 2>&1 | grep -v -f "${packagesHold}" | grep -Ev '^(Listing|WARNING|$)' > "${packages}"
|
||||||
packagesParsable=$(cut -f 1 -d / <$packages |tr '\n' ' ')
|
packagesParsable=$(cut -f 1 -d / < "${packages}" |tr '\n' ' ')
|
||||||
|
|
||||||
# No updates? Exit!
|
# No updates? Exit!
|
||||||
test ! -s $packages && exit 0
|
test ! -s "${packages}" && exit 0
|
||||||
test ! -s $packagesHold && echo 'Aucun' > $packagesHold
|
test ! -s "${packagesHold}" && echo 'Aucun' > "${packagesHold}"
|
||||||
|
|
||||||
fetch_upgrade_info
|
fetch_upgrade_info
|
||||||
local_release=$(cut -f 1 -d . </etc/debian_version)
|
local_release=$(cut -f 1 -d . </etc/debian_version)
|
||||||
|
|
||||||
# Exit if skip_releases or skip_packages in upgrade info file are set to all.
|
# Exit if skip_releases or skip_packages in upgrade info file are set to all.
|
||||||
([ "$r_skip_releases" = "all" ] || [ "$r_skip_packages" = "all" ]) && exit 30
|
if [ "${r_skip_releases}" = "all" ] || [ "${r_skip_packages}" = "all" ]; then
|
||||||
|
exit 30
|
||||||
|
fi
|
||||||
|
|
||||||
# Exit if the server's release is in skip_releases.
|
# Exit if the server's release is in skip_releases.
|
||||||
[ -n "$r_skip_releases" ] && is_in "$r_skip_releases" "$local_release" && exit 40
|
if [ -n "${r_skip_releases}" ] && is_in "${r_skip_releases}" "${local_release}"; then
|
||||||
|
exit 40
|
||||||
|
fi
|
||||||
|
|
||||||
# Exit if all packages to upgrade are listed in skip_packages:
|
# Exit if all packages to upgrade are listed in skip_packages:
|
||||||
# we remove each package to skip from the $packageToUpgrade list. At the end,
|
# we remove each package to skip from the $packageToUpgrade list. At the end,
|
||||||
# if there is no additional packages to upgrade, we can exit.
|
# if there is no additional packages to upgrade, we can exit.
|
||||||
if [ -n "$r_skip_packages" ]; then
|
if [ -n "${r_skip_packages}" ]; then
|
||||||
packageToUpgrade="$packagesParsable"
|
packageToUpgrade="${packagesParsable}"
|
||||||
for pkg in $r_skip_packages; do
|
for pkg in ${r_skip_packages}; do
|
||||||
packageToUpgrade="${packageToUpgrade/$pkg}"
|
packageToUpgrade="${packageToUpgrade}/${pkg}"
|
||||||
done
|
done
|
||||||
packageToUpgrade=$(echo $packageToUpgrade |sed 's/ \+//g')
|
packageToUpgrade=$(echo "${packageToUpgrade}" | sed 's/ \+//g')
|
||||||
if [ -z "$packageToUpgrade" ]; then
|
if [ -z "${packageToUpgrade}" ]; then
|
||||||
exit 50
|
exit 50
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Exit if the server's release is not in releases.
|
# Exit if the server's release is not in releases.
|
||||||
if [ -n "$r_releases" ] && [ "$r_releases" != "all" ]; then
|
if [ -n "${r_releases}" ] && [ "${r_releases}" != "all" ]; then
|
||||||
is_in "$r_releases" "$local_release" || exit 60
|
is_in "${r_releases}" "${local_release}" || exit 60
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Exit if there is packages to upgrades that are not in packages list:
|
# Exit if there is packages to upgrades that are not in packages list:
|
||||||
# we exit at the first package encountered that is not in packages list.
|
# we exit at the first package encountered that is not in packages list.
|
||||||
if [ -n "$r_packages" ] && [ "$r_packages" != "all" ]; then
|
if [ -n "${r_packages}" ] && [ "${r_packages}" != "all" ]; then
|
||||||
for pkg in $packagesParsable; do
|
for pkg in ${packagesParsable}; do
|
||||||
is_in "$r_packages" "$pkg" || exit 70
|
is_in "${r_packages}" "${pkg}" || exit 70
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Guess which services will be restarted.
|
# Guess which services will be restarted.
|
||||||
for pkg in $packagesParsable; do
|
for pkg in ${packagesParsable}; do
|
||||||
if echo "$pkg" |grep -qE "^(lib)?apache2"; then
|
if echo "${pkg}" | grep -qE "^(lib)?apache2"; then
|
||||||
echo "Apache2" >>$servicesToRestart
|
echo "Apache2" >> "${servicesToRestart}"
|
||||||
elif echo "$pkg" |grep -q "^nginx"; then
|
elif echo "${pkg}" | grep -q "^nginx"; then
|
||||||
echo "Nginx" >>$servicesToRestart
|
echo "Nginx" >> "${servicesToRestart}"
|
||||||
elif echo "$pkg" |grep -q "^php5-fpm"; then
|
elif echo "${pkg}" | grep -q "^php5-fpm"; then
|
||||||
echo "PHP FPM" >>$servicesToRestart
|
echo "PHP FPM" >> "${servicesToRestart}"
|
||||||
elif echo "$pkg" |grep -q "^mysql-server"; then
|
elif echo "${pkg}" | grep -q "^mysql-server"; then
|
||||||
echo "MySQL" >>$servicesToRestart
|
echo "MySQL" >> "${servicesToRestart}"
|
||||||
elif echo "$pkg" |grep -q "^mariadb-server"; then
|
elif echo "${pkg}" | grep -q "^mariadb-server"; then
|
||||||
echo "MariaDB" >>$servicesToRestart
|
echo "MariaDB" >> "${servicesToRestart}"
|
||||||
elif echo "$pkg" |grep -qE "^postgresql-[[:digit:]]+\.[[:digit:]]+$"; then
|
elif echo "${pkg}" | grep -qE "^postgresql-[[:digit:]]+\.[[:digit:]]+$"; then
|
||||||
echo "PostgreSQL" >>$servicesToRestart
|
echo "PostgreSQL" >> "${servicesToRestart}"
|
||||||
elif echo "$pkg" |grep -qE "^tomcat[[:digit:]]+$"; then
|
elif echo "${pkg}" | grep -qE "^tomcat[[:digit:]]+$"; then
|
||||||
echo "Tomcat" >>$servicesToRestart
|
echo "Tomcat" >> "${servicesToRestart}"
|
||||||
elif [ "$pkg" = "redis-server" ]; then
|
elif [ "${pkg}" = "redis-server" ]; then
|
||||||
echo "Redis" >>$servicesToRestart
|
echo "Redis" >> "${servicesToRestart}"
|
||||||
elif [ "$pkg" = "mongodb-server" ]; then
|
elif [ "${pkg}" = "mongodb-server" ]; then
|
||||||
echo "MondoDB" >>$servicesToRestart
|
echo "MondoDB" >> "${servicesToRestart}"
|
||||||
elif echo "$pkg" |grep -qE "^courier-(pop|imap)"; then
|
elif echo "${pkg}" | grep -qE "^courier-(pop|imap)"; then
|
||||||
echo "Courier POP/IMAP" >>$servicesToRestart
|
echo "Courier POP/IMAP" >> "${servicesToRestart}"
|
||||||
elif echo "$pkg" |grep -qE "^dovecot-(pop|imap)d"; then
|
elif echo "${pkg}" | grep -qE "^dovecot-(pop|imap)d"; then
|
||||||
echo "Dovecot POP/IMAP" >>$servicesToRestart
|
echo "Dovecot POP/IMAP" >> "${servicesToRestart}"
|
||||||
elif [ "$pkg" = "samba" ]; then
|
elif [ "${pkg}" = "samba" ]; then
|
||||||
echo "Samba" >>$servicesToRestart
|
echo "Samba" >> "${servicesToRestart}"
|
||||||
elif [ "$pkg" = "slapd" ]; then
|
elif [ "${pkg}" = "slapd" ]; then
|
||||||
echo "OpenLDAP" >>$servicesToRestart
|
echo "OpenLDAP" >> "${servicesToRestart}"
|
||||||
elif [ "$pkg" = "bind9" ]; then
|
elif [ "${pkg}" = "bind9" ]; then
|
||||||
echo "Bind9" >>$servicesToRestart
|
echo "Bind9" >> "${servicesToRestart}"
|
||||||
elif [ "$pkg" = "postfix" ]; then
|
elif [ "${pkg}" = "postfix" ]; then
|
||||||
echo "Postfix" >>$servicesToRestart
|
echo "Postfix" >> "${servicesToRestart}"
|
||||||
elif [ "$pkg" = "haproxy" ]; then
|
elif [ "${pkg}" = "haproxy" ]; then
|
||||||
echo "HAProxy" >>$servicesToRestart
|
echo "HAProxy" >> "${servicesToRestart}"
|
||||||
elif [ "$pkg" = "varnish" ]; then
|
elif [ "${pkg}" = "varnish" ]; then
|
||||||
echo "Varnish" >>$servicesToRestart
|
echo "Varnish" >> "${servicesToRestart}"
|
||||||
elif [ "$pkg" = "squid" ]; then
|
elif [ "${pkg}" = "squid" ]; then
|
||||||
echo "Squid" >>$servicesToRestart
|
echo "Squid" >> "${servicesToRestart}"
|
||||||
elif [ "$pkg" = "elasticsearch" ]; then
|
elif [ "${pkg}" = "elasticsearch" ]; then
|
||||||
echo "Elasticsearch" >>$servicesToRestart
|
echo "Elasticsearch" >> "${servicesToRestart}"
|
||||||
elif [ "$pkg" = "logstash" ]; then
|
elif [ "${pkg}" = "logstash" ]; then
|
||||||
echo "Logstash" >>$servicesToRestart
|
echo "Logstash" >> "${servicesToRestart}"
|
||||||
|
elif [ "${pkg}" = "kibana" ]; then
|
||||||
elif [ "$pkg" = "libc6" ]; then
|
echo "Kibana" >> "${servicesToRestart}"
|
||||||
echo "Tous les services sont susceptibles d'être redémarrés (mise à jour de libc6)." >$servicesToRestart
|
elif [ "${pkg}" = "libc6" ]; then
|
||||||
|
echo "Tous les services sont susceptibles d'être redémarrés (mise à jour de libc6)." > "${servicesToRestart}"
|
||||||
break
|
break
|
||||||
elif [ "$pkg" = "libstdc++6" ]; then
|
elif [ "${pkg}" = "libstdc++6" ]; then
|
||||||
echo "Tous les services sont susceptibles d'être redémarrés (mise à jour de libstdc++6)." >$servicesToRestart
|
echo "Tous les services sont susceptibles d'être redémarrés (mise à jour de libstdc++6)." > "${servicesToRestart}"
|
||||||
break
|
break
|
||||||
elif echo "$pkg" |grep -q "^libssl"; then
|
elif echo "${pkg}" | grep -q "^libssl"; then
|
||||||
echo "Tous les services sont susceptibles d'être redémarrés (mise à jour de libssl)." >$servicesToRestart
|
echo "Tous les services sont susceptibles d'être redémarrés (mise à jour de libssl)." > "${servicesToRestart}"
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
test ! -s $servicesToRestart && echo "Aucun" >$servicesToRestart
|
test ! -s "${servicesToRestart}" && echo "Aucun" > "${servicesToRestart}"
|
||||||
|
|
||||||
cat << EOT > $template
|
cat << EOT > "${template}"
|
||||||
Content-Type: text/plain; charset="utf-8"
|
Content-Type: text/plain; charset="utf-8"
|
||||||
Reply-To: equipe@evolix.fr
|
Reply-To: equipe@evolix.fr
|
||||||
From: equipe@evolix.net
|
From: equipe@evolix.net
|
||||||
To: ${clientmail}
|
To: ${clientmail}
|
||||||
Subject: Prochain creneau pour mise a jour de votre serveur $hostname
|
Subject: Prochain creneau pour mise a jour de votre serveur ${hostname}
|
||||||
X-Debian-Release: $local_release
|
X-Debian-Release: ${local_release}
|
||||||
X-Packages: $packagesParsable
|
X-Packages: ${packagesParsable}
|
||||||
X-Date: $date
|
X-Date: ${date}
|
||||||
|
|
||||||
Bonjour,
|
Bonjour,
|
||||||
|
|
||||||
|
@ -215,15 +226,15 @@ semaine prochaine.
|
||||||
|
|
||||||
Voici la listes de packages qui seront mis à jour :
|
Voici la listes de packages qui seront mis à jour :
|
||||||
|
|
||||||
$(cat $packages)
|
$(cat "${packages}")
|
||||||
|
|
||||||
Liste des packages dont la mise-à-jour a été manuellement suspendue :
|
Liste des packages dont la mise-à-jour a été manuellement suspendue :
|
||||||
|
|
||||||
$(cat $packagesHold)
|
$(cat "${packagesHold}")
|
||||||
|
|
||||||
Liste des services qui seront redémarrés :
|
Liste des services qui seront redémarrés :
|
||||||
|
|
||||||
$(cat $servicesToRestart)
|
$(cat "${servicesToRestart}")
|
||||||
|
|
||||||
N'hésitez pas à nous faire toute remarque sur ce créneau d'intervention le plus
|
N'hésitez pas à nous faire toute remarque sur ce créneau d'intervention le plus
|
||||||
tôt possible.
|
tôt possible.
|
||||||
|
@ -234,14 +245,15 @@ Cordialement,
|
||||||
http://evolix.com | Twitter: @Evolix @EvolixNOC | http://blog.evolix.com
|
http://evolix.com | Twitter: @Evolix @EvolixNOC | http://blog.evolix.com
|
||||||
EOT
|
EOT
|
||||||
|
|
||||||
<$template /usr/sbin/sendmail $mailto
|
< "${template}" /usr/sbin/sendmail "${mailto}"
|
||||||
|
|
||||||
# Now we try to fetch all the packages for the next update session
|
# Now we try to fetch all the packages for the next update session
|
||||||
downloadstatus=$(apt dist-upgrade --assume-yes --download-only -q2 2>&1)
|
downloadstatus=$(apt dist-upgrade --assume-yes --download-only -q2 2>&1)
|
||||||
echo "$downloadstatus" | grep -q 'Download complete and in download only mode'
|
echo "${downloadstatus}" | grep -q 'Download complete and in download only mode'
|
||||||
|
|
||||||
|
# shellcheck disable=SC2181
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "$downloadstatus"
|
echo "${downloadstatus}"
|
||||||
fi;
|
fi;
|
||||||
|
|
||||||
|
|
||||||
|
@ -249,19 +261,19 @@ fi;
|
||||||
if which lxc-ls > /dev/null; then
|
if which lxc-ls > /dev/null; then
|
||||||
for container in $(lxc-ls); do
|
for container in $(lxc-ls); do
|
||||||
|
|
||||||
aptUpdateOutput=$(lxc-attach -n $container -- apt update 2>&1 | (egrep -ve '^(Listing|WARNING|$)' -e upgraded -e 'up to date' || true ))
|
aptUpdateOutput=$(lxc-attach -n "${container}" -- apt update 2>&1 | (grep -Eve '^(Listing|WARNING|$)' -e upgraded -e 'up to date' || true ))
|
||||||
|
|
||||||
if (echo "$aptUpdateOutput" | egrep "^Err(:[0-9]+)? http"); then
|
if (echo "${aptUpdateOutput}" | grep -E "^Err(:[0-9]+)? http"); then
|
||||||
echo "FATAL CONTAINER - Not able to fetch all sources (probably a pesky (mini)firewall). Please, fix me"
|
echo "FATAL CONTAINER - Not able to fetch all sources (probably a pesky (mini)firewall). Please, fix me"
|
||||||
exit 150
|
exit 150
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Now we try to fetch all the packages for the next update session
|
# Now we try to fetch all the packages for the next update session
|
||||||
downloadstatus=$(lxc-attach -n $container -- apt dist-upgrade --assume-yes --download-only -q2 2>&1)
|
downloadstatus=$(lxc-attach -n "${container}" -- apt dist-upgrade --assume-yes --download-only -q2 2>&1)
|
||||||
echo "$downloadstatus" | grep -q 'Download complete and in download only mode'
|
echo "${downloadstatus}" | grep -q 'Download complete and in download only mode'
|
||||||
|
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "$downloadstatus"
|
echo "${downloadstatus}"
|
||||||
fi;
|
fi;
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
Loading…
Reference in a new issue