Команды ipinfo и sysinfo в НАЙС.ОС¶
В bash.spec добавлены встроенные функции оболочки ipinfo и sysinfo. Они созданы для быстрого знакомства с системой, но не заменяют стандартные диагностические команды.
ipinfo — сеть кратко¶
По изученному исходному рецепту функция:
- перечисляет локальные адреса сетевых интерфейсов;
- скрывает типичные интерфейсы Docker (
docker0,br-*,veth*), чтобы упростить вывод; - показывает MAC и состояние интерфейса;
- пытается определить публичный IPv4 с помощью HTTP-запроса к внешнему сервису
ifconfig.me; - отображает DNS: через команду
systemd-resolve, если она доступна, либо содержимое/etc/resolv.conf.
Приватность и ограничения функции
ipinfo обращается к внешнему ресурсу ifconfig.me, передавая ему запрос с IP-адреса машины. В изолированном контуре или при строгой политике OUTPUT DROP внешний IP не определится. Это не ошибка системного сетевого стека. Если политика безопасности запрещает такой запрос, не запускайте функцию либо используйте локальные команды ниже.
Надёжные локальные аналоги:
sysinfo — краткая информация о системе¶
Исследованная функция отображает ядро и ОС, ОЗУ (free), процессор (lscpu, nproc), время работы (uptime), использование / (df), тип виртуализации (systemd-detect-virt), первый найденный сетевой интерфейс и среднюю нагрузку.
Учитывайте особенности: первый интерфейс не всегда является управляющим, а определение частоты CPU может быть неточным в виртуальной машине. Для воспроизводимого анализа лучше фиксировать первичные команды.
Почему функция может отсутствовать¶
Проверьте:
Если функции определены в /etc/bashrc, но недоступны в вашей сессии, посмотрите порядок загрузки shell-профилей. При запуске неинтерактивного скрипта они обычно не подгружаются.
Рекомендация для скриптов¶
Не вызывайте ipinfo и sysinfo в автоматизации как API. Вместо парсинга декоративного вывода используйте ip -j addr, ip -j route, systemctl show, /proc/meminfo и другие машинно-ориентированные источники при наличии соответствующих утилит.