![]() |
Поделиться |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Поделиться |
![]()
Сообщение
#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-индикатору. По дефолту индикатор проверяет обновление, но при выборе автоустановки всё равно требует ряд ручных шагов, а если прикрутить к нему это изменение (полноценную автоустановку), тогда он сможет делать автообновление в нужном режиме, без ручных операций, подтвердил пользователь , что согласен с полным автообновлением и индикатор всё обновил автоматом и пакеты и ядро.
|
|
|
![]()
Сообщение
#3
|
|
Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 620 Регистрация: 11.5.2015 Вставить ник Цитата Пользователь №: 2810 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Убрал строчки sh /, они ссылались на файлы которые только у меня есть. Щас скрипт полностью самодостаточен можно копировать и проверить на виртуалке например.
Добавил еще удаление старых ядер, скрипт оставляет на пк 2 ядра свежее и предыдущее. Используется remove-old-kernels. Если вам нужно больше 2х ядер на пк то просто удалите строчку с командой: del-kernels из функции kern-update. ИМХО Как вариант, можно попробовать прикрутить это решение к уже существующему apt-индикатору. По дефолту индикатор проверяет обновление, но при выборе автоустановки всё равно требует ряд ручных шагов, а если прикрутить к нему это изменение (полноценную автоустановку), тогда он сможет делать автообновление в нужном режиме, без ручных операций, подтвердил пользователь , что согласен с полным автообновлением и индикатор всё обновил автоматом и пакеты и ядро. Была идея адаптировать его для автозагрузки как раз с функцией обновления, а синаптик выключить вообще. Преимущество скрипта, проверка мгновенная, ресурсы пк почти не тратит. Но как-то в сомнениях насколько это нужно. Многие вообще против автоматизации ядра. Мне просто лень делать все в ручную, так что если кому тоже лень пусть пользуются. ![]() Сообщение отредактировал Koi.v2 - 13.10.2015, 17:48 |
|
|
![]()
Сообщение
#4
|
|
Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 794 Регистрация: 9.7.2010 Вставить ник Цитата Пользователь №: 1865 Страна: Россия Город: Зарайск/Московской Пол: Муж. Репутация: ![]() ![]() ![]() |
Но как-то в сомнениях насколько это нужно. "Ты не сомневайся, ты делай, а там посмотрим, кому впарить ....." С ![]() Лично мне бы такой вариант индикатора пригодился. По аналогии с Виндой, если человек хочет обновление , но не знает как правильно это делать, такой автоматический вариант был бы весьма уместен. Что-бы не ломать привычную систему, можно сделать отдельный пакет с модернизированным индикатором. |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 6.7.2025, 15:33 |