Автоматизация обновления APT через Bash скрипт

Я относительно новичок в Linux в целом, все еще учусь:)

Я хочу написать bash-скрипт для автоматизации apt update и apt upgrade. У меня есть идея отправить команду apt update, а затем просмотреть строки для конкретных слов.

Например, после того, как apt update было сделано, он говорит:

 Reading state information... Done
 89 packages can be upgraded.

Так что в этом случае я хочу искать can be upgraded. Если эти слова находятся в выводе, скрипт должен выполнить apt upgrade -y.

Любая помощь высоко ценится. Заранее спасибо.

0
задан 19 August 2019 в 10:27

2 ответа

Существует этот инструмент /usr/lib/update-notifier/apt-check дающий простой вывод.

Эти --human-readable флаг дает больше информации.

Короче говоря, /usr/lib/update-notifier/apt-check --human-readable дает два числа:

<n1> packages can be updated.
<n2> updates are security updates.

/usr/lib/update-notifier/apt-check без опции имеет это выходное расположение:

<n1>;<n1>

, Таким образом, возможно извлечь первое число и если это больше, чем 0, скажите, что некоторое обновление доступно.

Извлечение первое число, количество доступных обновлений:

/usr/lib/update-notifier/apt-check |& cut -d";" -f 1

Использование это в сценарии:

#!/bin/bash
if [ $(/usr/lib/update-notifier/apt-check |& cut -d";" -f 1) -gt 0 ]; then
    # Some commands
    sudo apt-get -y dist-upgrade
fi
2
ответ дан 23 October 2019 в 05:21

На практике Вы не заботитесь... Просто выполненный

apt update
apt upgrade

в последовательности, если нет ничего для обновления, ничего не произойдет. Это - сценарий, и это - компьютер, делающий работу, выполнение apt upgrade не собирается брать много ЦП.

единственные тесты, которые стоит сделать вот, - то, что apt-update и apt-upgrade работал правильно (никакие сетевые ошибки, нет полуустанавливал/неправильно конфигурировал пакеты).

0
ответ дан 23 October 2019 в 05:21

Другие вопросы по тегам:

Похожие вопросы: