База знаний по Open Source
Yandex поиск по всему сайту
Авторизация

lxd logo

Когда на сервере много LXD контейнеров, обновление системы на них создает определенные проблемы. Для этого существует скрипт, который обновляет (update/upgrade) все запущенные контейнеры:

#!/bin/bash
# Run apt update/upgrade on all LXD containers
 
 
running="$(lxc list -c ns | awk '!/NAME/{ if ( $4 == "RUNNING" ) print $2}')"
 
for container in $running
do
echo "Updating Ubuntu LXD Container "$container"..."
lxc exec $container -- /bin/bash -c "apt -qq update"
lxc exec $container -- /bin/bash -c "apt -qq -y full-upgrade"
lxc exec $container -- /bin/bash -c "apt -qq -y autoremove --purge"
lxc exec $container -- /bin/bash -c "apt -qq -y clean"
done

Скрипт набираем любым редактором текста, например nano:

nano  lxd-apt-update.sh

Делаем его исполняемым:

chmod +x lxd-apt-update.sh

Далее можно сделать, чтобы скрипт lxd-apt-update.sh запускался ежедневно, еженедельно и т.д. Для этого его нужно скопировать в соответствующую папку в /etc/ – cron.daily, cron.weekly или cron.monthly:

sudo cp  lxd-apt-update.sh /etc/cron.daily/lxd-apt-update.sh

Скрипт взят отсюда.