Анализируем систему на предмет установленного ПО не через пакетный менеджер, а пакетный менеджер — это apt.
Я же стараюсь всегда и везде ставить приложения посредством дефолтных репозитариев или подключаемых репозитариев, а сборку из исходников оставлять на самый последний вариант, когда действительно это необходимо. Исходя из этого я задался целью найти инструмент, который просмотрит базу данных пакетов Ubuntu
систем и сравнит ее содержимое с файлами, которые находятся в системе и выдаст файл отчета. Я нашел, имя этому инструменту cruft.
Все дальнейшие действия проходят на Ubuntu 22.04 Server.
Шаг №1:
Смотрю есть ли утилита cruft
в дефолтных репозитариях Ubuntu 22.04 Server:
ekzorchik@srv-pbx:~$ apt-cache search cruft | grep 'cruft' cruft - program that finds any cruft built up on your system cruft-common - information database shared by cruft & cruft-ng cruft-ng - program that finds any cruft built up on your system ekzorchik@srv-pbx:~$ ekzorchik@srv-pbx:~$ apt-cache show cruft | grep Version Version: 0.9.40 ekzorchik@srv-pbx:~$
Шаг №2:
Устанавливаю утилиту cruft
в текущую систему Ubuntu 22.04 Server:
ekzorchik@srv-pbx:~$ sudo apt-get install -y cruft cruft-common cruft-ng
Шаг №3:
Смотрим где установлена в системе утилита cruft:
ekzorchik@srv-pbx:~$ whereis cruft cruft: /usr/sbin/cruft /usr/lib/cruft /etc/cruft /usr/share/man/man8/cruft.8.gz ekzorchik@srv-pbx:~$
исходя из этого понимаю, что для ее работы по всей системе нужно использовать предверие запуска, как запуск через sudo потому как располагается она в каталоге /usr/sbin
. Все что в "sbin"
все налагает на себя запуск через sudo.
Шаг №4:
Перед запуском хотя бы бегло стоит ознакомиться описание что утилита может и какие ключи в ее использовании можно задействовать:
ekzorchik@srv-pbx:~$ man 8 cruft
Шаг №5:
Запускаем утилиту cruft:
ekzorchik@srv-pbx:~$ sudo cruft --ignore /boot --ignore /sys --ignore /var/lib/docker -r /home/ekzorchik/report.txt ekzorchik@srv-pbx:~$
Шаг №6:
Смотрим сформированный отчет по анализу всей системы:
ekzorchik@srv-pbx:~$ ls -lh ~/report.txt -rw-r--r-- 1 root root 3.4M Apr 23 09:28 /home/ekzorchik/report.txt ekzorchik@srv-pbx:~$ sudo tail -f ~/report.txt ekzorchik@srv-pbx:~$ sudo cat ~/report.txt | grep /usr/src/
в выводе report.txt
увидел, что есть каталоги в /usr/src
смотрю какие каталоги есть:
ekzorchik@srv-pbx:~$ ls -l /usr/src | grep "^d" drwxr-xr-x 31 root root 4096 Feb 13 16:12 asterisk-16.9.0 drwxr-xr-x 15 1001 asterisk 4096 Feb 13 10:20 lame-3.100 drwxr-xr-x 25 root root 4096 Jan 22 09:33 linux-headers-5.15.0-91 drwxr-xr-x 7 root root 4096 Jan 22 09:33 linux-headers-5.15.0-91-generic drwxr-xr-x 25 root root 4096 Feb 12 09:45 linux-headers-5.15.0-94 drwxr-xr-x 7 root root 4096 Feb 12 09:45 linux-headers-5.15.0-94-generic ekzorchik@srv-pbx:~$
из проанализированного отчета понимаю, что на данной системе устанавливали FreeBPX
многое, к этому подводит, вообще считаю, что собранная информация здорово облегчает анализ системы перед последующей поддержкой и обеспечиванием работоспособности.
Шаг №7:
Так, а если установить эту утилиту на боевую VPS
систему (это Ubuntu 18.04 Server
) с целью посмотреть, что разработчики устанавливают и используют то что не предусмотрено политикой работы с системой:
ekzorchik@srv-tablo:~$ sudo apt-get -f install cruft ekzorchik@srv-tablo:~$ sudo cruft --ignore /boot --ignore /sys --ignore /var/lib/docker -r /home/$USER/report.txt
тут уже поинтереснее.
стоит: nginx, php7.3-fpm, postgresql, rabbitmq,
есть подключенные репозитарии
ekzorchik@srv-tablo:~$ cat /etc/apt/sources.list.d/ bintray.rabbitmq.list deadsnakes-ubuntu-ppa-bionic.list mssql-release.list ondrej-ubuntu-php-bionic.list.save bintray.rabbitmq.list.save deadsnakes-ubuntu-ppa-bionic.list.save ondrej-ubuntu-php-bionic.list ekzorchik@srv-tablo:~$
если задаться целью и необходимостью, то узнать, что есть не составит труда при наличии желания и квалификации.
Итого: Я получил в свою копилку инструмент по сбору всего установленного на сервере с последующей целью анализа что зачем и как. Хоть небольшое подспорье с тем что перед этим вообще ничего не было.
На этом моя заметка для самого себя успешно завершена, с уважением автор блога Олло Александр aka ekzorchik.