Files
StrixScripts/System/system-report.md
T

6.1 KiB

system-report.sh

Събира моментна информация за Linux системата: идентификация на хоста, операционна система, CPU и RAM, дискове и mount points, мрежови интерфейси, скорост/сигнал и монтирани мрежови файлови системи. Показва отчета в терминала и по избор го записва като TXT, JSON или HTML.

Какво прави

Отчетът включва hostname и домейн, uptime, архитектура и версия на дистрибуцията, версия на kernel-а, моментно CPU натоварване, load average и обща/използвана/ свободна RAM. Uptime се чете от /proc/uptime и се показва в секунди в JSON, както и в четим формат в TXT и HTML. За дисковете показва модел, тип носител и интерфейс, размер, дъщерни файлови системи, mount points и използвано място. Диск без mount point и без установен swap се маркира като „Not mounted and not in use“.

За мрежовите интерфейси се показват състояние и IP адреси, Ethernet скорост в Mbps, когато kernel-ът я предоставя, и за Wi-Fi SSID, сигнал, честота и канал. За свързан Wi-Fi интерфейс се използват iw, NetworkManager (nmcli) и /proc/net/wireless; стойността се попълва от наличния източник, така че липсата на една команда не премахва останалите метрики. Силата може да бъде показана в dBm, проценти, ленти или driver-provided quality. RX/TX bitrate се показва, когато iw го предоставя; ако iw липсва, отчетът го отбелязва, докато SSID, сигнал, честота и канал продължават да се събират.

Мрежовите mount points (например SMB/CIFS, NFS, WebDAV, SSHFS и други познати мрежови файлови системи) се показват отделно със source и mount target. Интерфейсите се групират по ред: физически Ethernet, физически Wi-Fi, Docker/container виртуални интерфейси, останали виртуални интерфейси. Docker групата се разпознава по имена като docker0, veth* и Docker bridge идентификатори. HTML отчетът използва отделни секции, таблици и адаптивни интерфейсни панели; TXT запазва същия ред с четливи заглавия.

След показването на отчета интерактивно се предлага запис. По подразбиране се използват ~/report.txt и TXT формат. Потребителят може да избере друг формат и път. С --output може да се зададе път директно; форматът се определя от разширението или може изрично да се зададе с --format.

Изисквания

  • Linux, Bash и Python 3
  • lsblk, ip и findmnt се използват за наличната информация; ако някоя команда или kernel interface липсва, съответното поле може да бъде отбелязано като недостъпно
  • iw е незадължителен и дава RX/TX bitrate; nmcli и /proc/net/wireless дават fallback данни за останалите Wi-Fi метрики, когато са налични
  • Root права не са нужни

Употреба

./System/system-report.sh
./System/system-report.sh --help
Опция Описание
-o, --output PATH Записва директно във файл; без тази опция предлага интерактивен запис
-f, --format FORMAT Формат txt, json или html
--force Позволява презапис на съществуващ файл без потвърждение
-h, --help Показва помощта и приключва

Примери

# Предлага формат и път, като началните стойности са txt и ~/report.txt
./System/system-report.sh

# Записва JSON; форматът се разпознава и от разширението
./System/system-report.sh --output "$HOME/report.json"

# Извежда JSON към stdout, удобно за pipe в неинтерактивен режим
./System/system-report.sh --format json

# Записва HTML в зададено място и разрешава презапис
./System/system-report.sh --output /tmp/system-report.html --format html --force

Ограничения

CPU utilization се измерва като средно натоварване за едносекундна проба, затова събирането на отчет отнема поне една секунда. Ethernet скоростта и Wi-Fi метриките зависят от драйвера и наличните kernel utilities. Използваното пространство се изчислява за монтираните файлови системи; неприкачени дялове нямат filesystem usage стойност. Състоянието „не се използва“ е извод от липсата на mount points и директно разпознат swap върху диска, а не гаранция, че устройството няма друга специализирана употреба.