Files
StrixScripts/System/system-report.md
T
2026-09-29 10:37:50 +03:00

86 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# system-report.sh
Събира моментна информация за Linux системата: идентификация на хоста,
операционна система, CPU и RAM, дискове и mount points, мрежови интерфейси,
скорост/сигнал и монтирани мрежови файлови системи. Показва отчета в
терминала и по избор го записва като TXT, JSON или HTML.
## Какво прави
Отчетът включва hostname и домейн, архитектура и версия на дистрибуцията,
версия на kernel-а, моментно CPU натоварване, load average и обща/използвана/
свободна RAM. За дисковете показва модел, тип носител и интерфейс, размер,
дъщерни файлови системи, 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 права не са нужни
## Употреба
```bash
./System/system-report.sh
./System/system-report.sh --help
```
| Опция | Описание |
|-------|----------|
| `-o`, `--output PATH` | Записва директно във файл; без тази опция предлага интерактивен запис |
| `-f`, `--format FORMAT` | Формат `txt`, `json` или `html` |
| `--force` | Позволява презапис на съществуващ файл без потвърждение |
| `-h`, `--help` | Показва помощта и приключва |
## Примери
```bash
# Предлага формат и път, като началните стойности са 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 върху диска, а не гаранция,
че устройството няма друга специализирана употреба.