Add Linux system status report
This commit is contained in:
1 parent
cf53a6bb50
commit
a23fc775e3
3 files changed
+974
No files matched your search
@@ -0,0 +1,86 @@
|
||||
# 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 върху диска, а не гаранция,
|
||||
че устройството няма друга специализирана употреба.
|
||||
Reference in new issue
Block a user