![]() |
Поделиться |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Поделиться |
![]()
Сообщение
#1
|
|
Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 620 Регистрация: 11.5.2015 Вставить ник Цитата Пользователь №: 2810 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Решил сделать небольшой sh скрипт для обновления ядра, так, чтоб не мучить пользователя лишними заботами и вопросами.
Пока накалякал такое... Код test-archives(){ DU=$(du -ms /var/cache/apt/archives | cut -f1) if (( "$DU" >= 3500 )); then echo "Объем archives превысил 3500 мегабайт" echo "Произвожу очистку" apt-get autoclean else echo "Очистка archives не требуется" fi } del-kernels(){ flavour_version_release="$(uname -r | awk -F- '{print $2"-"$3"-"$1"-"$4}')" old_kernels="$(rpm -qa | fgrep kernel-image | fgrep -v $flavour_version_release | tr '\n' ' ')" # calculate arguments for apt for kernel in $old_kernels do apt_args_list="$apt_args_list $(rpm -q --queryformat '%{NAME}#%{EPOCH}:%{VERSION}-%{RELEASE}\n' $kernel \ | sed -e "s,(none):,,g")" done # use sudo(1) if running as unprivileged user [ "$UID" = "0" ] && SUDO= || SUDO=sudo $SUDO apt-get remove -y $apt_args_list } up-kernel(){ echo "Обновление ядра" update-kernel -f echo "Перезагрузка произойдет через 15 секунд" sleep 15 reboot } kern-update(){ aptKERN=$(apt-cache show kernel-headers-std-def | grep -i 'Version: ' | cut -f3 -d : | cut -f1 -d - | sed 's/[^0-9]//g' | head -1) kVERS=$(uname -r | cut -f1 -d - | sed 's/[^0-9]//g') echo "Обновление списка пакетов apt-get update" apt-get update if (( "$aptKERN" > "$kVERS" )); then test-archives echo "Удаление старого ядра" del-kernels echo "Обновление пакетов дистрибутива" apt-get dist-upgrade -y up-kernel else echo "Обновление ядра не требуется" echo "Выход из программы через 5с" sleep 5 fi } kern-update Скрипт работает проверил, запускается через *.desktop Код Type=Application Categories=System;Utility;Archiving; Exec=/usr/bin/xdg-su -c 'xterm -e /opt/au-kernel/au-kernel.sh' Terminal=false Icon=/opt/au-kernel/img/img-au-kernel.png Name=au-kernel GenericName=update-kernel GenericName[ru]=Обновление ядра Linux Comment=update-kernel Comment[ru]=Использует команду update-kernel Сомневаюсь стоит ли его сделать для автозагрузки, чтоб если есть обновление появлялся значок в трее или это лишнее? Можно обновлятор сделать вместо синаптика, а то он тяжеловат. Значок соответствует процессу обновления ядра ![]() ![]() Скрип готов к тестированию, кто хочет может скачать, он упакован в архив там папка для картинок, логов , чтоб было удобно пользоваться, в архиве небольшая инструкция. https://yadi.sk/d/zffFtRhhjjDUd Замечания, предложения и т.д. ![]() Сообщение отредактировал Koi.v2 - 14.10.2015, 16:16 |
|
|
![]() |
![]()
Сообщение
#2
|
|
Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 794 Регистрация: 9.7.2010 Вставить ник Цитата Пользователь №: 1865 Страна: Россия Город: Зарайск/Московской Пол: Муж. Репутация: ![]() ![]() ![]() |
ИМХО Как вариант, можно попробовать прикрутить это решение к уже существующему apt-индикатору. По дефолту индикатор проверяет обновление, но при выборе автоустановки всё равно требует ряд ручных шагов, а если прикрутить к нему это изменение (полноценную автоустановку), тогда он сможет делать автообновление в нужном режиме, без ручных операций, подтвердил пользователь , что согласен с полным автообновлением и индикатор всё обновил автоматом и пакеты и ядро.
|
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 6.7.2025, 15:29 |