Как создать список оборудования и инвентаризацию Linux-системы при каждой загрузке?

Привет всем!

Я сейчас прохожу курс “от 0 до Linux админа” на YoDo и столкнулся с задачей: как создать BOM (Bill of Materials) или инвентаризацию Linux-системы при каждом запуске.

У меня доступ к множеству различных систем, среди которых есть как старые, так и относительно новые, некоторые из них обновляются чаще, чем другие. Мне часто приходится перемещать жесткие диски с одного сервера на другой, и нет какого-то стандартного подхода. Я ищу способ, который позволил бы мне просмотреть отчет или набор файлов, которые будут унифицированы для всех систем, чтобы я мог быстро узнать, на каком сервере все это находилось на момент последнего запуска.

Я уже искал информацию в интернете и получил несколько полезных команд, например, для вывода списка установленных пакетов для различных дистрибутивов:

  • Debian/Ubuntu (apt): sudo apt list --installed или dpkg --get-selections | grep -w "install".
  • Red Hat/CentOS/Fedora (dnf/yum): dnf list installed или yum list installed.
  • Arch Linux (pacman): pacman -Q.

А также команды для получения информации о железе в момент загрузки:

  • lshw, lspci -v, lsusb -v, dmesg, udevadm, cat /proc/cpuinfo, cat /proc/meminfo, cat /proc/version.

Однако главный вопрос — есть ли уже существующая программа или инструмент, который может выполнять эту задачу, или мне придется написать скрипт, который будет запускать эти команды и записывать их вывод в лог-файл при каждой загрузке?

Если у кого-то есть опыт или советы по этому поводу, буду признателен за любую помощь!

Спасибо!

Привет, дружище! :tada:

Слушай, я решил заморочиться с тем, как сделать инвентаризацию оборудования на Linux-системе при каждой загрузке, и вот что у меня вышло… Во-первых, я прочитал кучу статей и туториалов, но, по сути, всё упиралось в создание скрипта, который собирает нужную информацию.

Я пробовал написать скрипт на bash, чтобы собрать данные с lshw, lscpu и прочих утилит. Всё вроде бы шло нормально, но вот фишка: после перезагрузки система не запускала мой скрипт! :weary: Я пытался добавить его в rc.local, но, как оказалось, не у всех дистрибутивов это работает. Заметил, что у меня в systemd все эти service-файлы — и как-то с ними заморачиваться не хотелось.

Потом решил делать через cron, добавил задачу на загрузку, но чёрт возьми, там какие-то проблемы с правами доступа! У меня скрипт не мог записать файлы в нужное место. Вообщем, кругами ходил, как лось. :man_facepalming:

Но! Я не стал отчаиваться! Наконец-то наткнулся на один крутой сайт с курсами — https://yodo.im/#courses. Там я нашёл несколько видеоуроков по системному администрированию. Они хорошо объясняли, как автоматизировать процессы на Linux. После пары занятий штука встала на свои места! :partying_face: Теперь у меня всё работает, и инвентаризация проходит без заморочек.

Короче, если у тебя будут проблемы с этим, можешь глянуть курсы на этом сайте! Уверен, поможет! :muscle:

Удачи!