Ubucleaner.sh и автоматическая очистка системы

Есть интересный скрипт по очистке системы 71529-ubucleaner.sh, так когда я его запускаю, он пытается удалить старые ядра. У меня установлено одно ядро v4.2-rc1-unstable и этот скрипт опредиляет его как старое. Почему так? И как запустить его в cronе, чтобы система очищаласть автоматом по расписанию?

0
MacLeod - 12 Июль, 2015 - 15:43
Изображение пользователя MacLeod.

Какое полное название пакета с текущим ядром?

0
Elimelech - 12 Июль, 2015 - 22:01

какова пакета?

+1
MacLeod - 12 Июль, 2015 - 23:35
Изображение пользователя MacLeod.

Полиэтиленового, с клеем... =)
Серьезно, вы за 1 год 23 недели не встречали упоминаний о пакетных менеджерах dpkg и apt?

0
Elimelech - 12 Июль, 2015 - 23:45

вы смотрели мою ссылку и скрипт? Там aptitude используется

0
MacLeod - 12 Июль, 2015 - 23:51
Изображение пользователя MacLeod.

Я-то смотрел. А вы, прежде чем написать этот пост, смотрели что такое Aptitude?)

0
Elimelech - 12 Июль, 2015 - 23:55

да

0
MacLeod - 13 Июль, 2015 - 00:09
Изображение пользователя MacLeod.

Смотрите внимательно:
Advanced Packaging Tool (APT) – набор утилит для управления программными пакетами в операционных системах основанных на Debian. APT предоставляет дружественную надстройку над DPKG.
А теперь на:
Aptitude — оболочка для Advanced Packaging Tool, части системы управления пакетами в операционной системе Debian и её производных.

0
Elimelech - 13 Июль, 2015 - 00:15

ну и что? Я не программист, а простой юзер

+1
MacLeod - 13 Июль, 2015 - 00:28
Изображение пользователя MacLeod.

Простой юзер не вкорячивает себе в систему нестабильное ядро, удаляя все остальные.
Как только вы сталкиваетесь с установкой/удалением софта - это уже элементы администрирования. И было бы очень неплохо перед тем, как копировать команды с форумов и запускать различные скрипты из сети, понять как распространяется софт и как использовать инструменты для управления им. Отнеситесь к системе с пониманием и она ответит вам тем же.
В Debian и всех производных бубунтах софт распространяется через пакеты (.deb). DPKG работает непосредственно с файлами, apt уже использует репозитории и может тащить пакеты из сети. aptitude - еще более продвинутая надстройка, но в конечном счете, управляет теми же самыми пакетами.
Если у вас затруднения с ответом на мой первый вопрос, хотя бы напишите как вы его устанавливали...

0
Elimelech - 13 Июль, 2015 - 00:49

Я читал про эти менеджеры пакетов. Устанавливал по инструкции в статье, теперь хочу этот скрипт автоматизировать!

0
MacLeod - 13 Июль, 2015 - 01:48
Изображение пользователя MacLeod.

Ядра в Debian и убунтах тоже распространяются в пакетах. Скрипт работает с именами пакетов. По ним же определяет версии, по ним же удаляет лишнее.
Я повторю вопрос: какое полное название пакета с 4.2-rc1-unstable, которое он, по вашим словам, определяет как старое?

0
Elimelech - 13 Июль, 2015 - 01:50

linux-headers-4.2.0-040200rc1-generic_4.2.0-040200rc1.201507051635_i386.deb

+1
MacLeod - 13 Июль, 2015 - 19:34
Изображение пользователя MacLeod.

linux-headers-4.2.0-040200rc1-generic_4.2.0-040200rc1.201507051635_i386.deb
Это файл пакета, предназначенный для установки, к тому же - это не само ядро, а только заголовочные файлы к нему.
Чтобы получить список установленных пакетов из базы, относящийся к ядру, можно сделать, например, так:
dpkg -l | grep linux-
Заметьте, именно dpkg -l с дополнительными выборками/отсечением используется в приведенном скрипте. Для OLDCONF выбираются именно пакеты, у которых указан атрибут rc, текущее ядро определяется вычленением версии из того, что возвращает uname -r, а список пакетов со старыми ядрами (OLDKERNELS) получается через тот же dpkg -l, выбирая по выражению с исключением пакета, версия которого совпадает с тем, что получено из uname.
Вы можете поиграться с данными командами прямо в консоли, либо добавить в скрипт отладочный вывод, добавив перед if следующие строчки:
echo "OLDCONF: $OLDCONF"
echo "CURKERNEL: $CURKERNEL"
echo "LINUXPKG: $LINUXPKG"
echo "METALINUXPKG: $METALINUXPKG"
echo "OLDKERNELS: $OLDKERNELS"
exit

Чтобы пакеты с текущим ядром выбрасывались из списка на удаление, должно быть вхождение CURKERNEL в их имена. В случае со стоковыми ядрами оно выполняется, а как там в случае с 4.2.0-040200 - предстоит выяснить вам или тому, кто решит себе установить такую версию ядра...

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры