uvicorn
This commit is contained in:
parent
b1918d5154
commit
ffffe65ce3
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
*.file
|
*.file
|
||||||
*.cmd
|
*.cmd
|
||||||
|
gbvenv
|
||||||
|
|||||||
22
app.py
Normal file
22
app.py
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
from fastapi import FastAPI, Request, HTTPException
|
||||||
|
import json
|
||||||
|
|
||||||
|
app = FastAPI()
|
||||||
|
|
||||||
|
@app.post("/endpoint")
|
||||||
|
async def receive_info(request: Request):
|
||||||
|
# Lire le body brut
|
||||||
|
body = await request.body()
|
||||||
|
print(body)
|
||||||
|
|
||||||
|
|
||||||
|
# Parser le JSON
|
||||||
|
try:
|
||||||
|
data = json.loads(body)
|
||||||
|
except json.JSONDecodeError:
|
||||||
|
raise HTTPException(status_code=400, detail="Invalid JSON")
|
||||||
|
|
||||||
|
|
||||||
|
# Debug
|
||||||
|
print("Infos reçues :", data)
|
||||||
|
return ({"status": "ok"})
|
||||||
106
grabber.sh
106
grabber.sh
@ -15,6 +15,92 @@ SUM="$DIR/summary.txt"
|
|||||||
#inxi > $DIR/inxi.cmd
|
#inxi > $DIR/inxi.cmd
|
||||||
#lsmem > $DIR/lsmem.cmd
|
#lsmem > $DIR/lsmem.cmd
|
||||||
|
|
||||||
|
HOSTNAME=$(hostname)
|
||||||
|
CPU=$(lscpu | grep 'Nom de modèle' | awk -F: '{print $2}' | xargs)
|
||||||
|
MEM=$(free -m | awk '/Mem:/ {print $2}')
|
||||||
|
OS=$(lsb_release -a |grep Description |cut -f2)
|
||||||
|
CPU_ID=$(sudo dmidecode -t processor |grep ID |cut -d: -f2)
|
||||||
|
RAM_SIZE=$(lsmem |grep "Mémoire partagée" |cut -d: -f2 |sed 's/\ //g')
|
||||||
|
RAM_GEN=$(sudo dmidecode -t memory |grep Type: |grep -v Unknown |tail -n1 |cut -d: -f2 |sed 's/\ //')
|
||||||
|
SIZES=$(lsblk -dnb | grep -v loop | grep -v boot | tr -s " " | cut -d' ' -f4)
|
||||||
|
MB_SERIAL=$(sudo dmidecode | grep -A 4 "Base Board" | tail -n1 | cut -d: -f2 | sed 's/\ //')
|
||||||
|
CPU_FREQUENCY_MIN=$(lscpu | grep MHz | cut -d: -f2 | sed -n '3p' | tr -s " " | sed 's/\ //' | cut -d, -f1)
|
||||||
|
CPU_FREQUENCY_CUR=$(sudo dmidecode | grep "MHz" | cut -d: -f2 | sed -n '3p' | sed 's/\ //')
|
||||||
|
CPU_FREQUENCY_MAX=$(sudo dmidecode | grep "MHz" | cut -d: -f2 | sed -n '2p' | sed 's/\ //')
|
||||||
|
GPU_MODEL=$(inxi | grep -o 'Radeon [^ ]* Graphics')
|
||||||
|
CHASSIS_SERIAL=$(sudo dmidecode | grep -A 5 "Chassis" | tail -n1 | cut -d: -f2 | sed 's/\ //')
|
||||||
|
CPU_CORES_NUMBER=$(inxi | grep core | cut -d' ' -f2 | sed 's/-core//')
|
||||||
|
CPU_THREADS_NUMBER=$(nproc)
|
||||||
|
RAM_NUMBER=$(sudo dmidecode --type memory | grep 'Rank' | wc -l)
|
||||||
|
RAM_SLOTS_NUMBER=$(sudo dmidecode --type memory | grep "Number Of Devices" | cut -d: -f2 | sed 's/\ //')
|
||||||
|
ARCH=$(uname -m)
|
||||||
|
DESKTOP=$XDG_CURRENT_DESKTOP
|
||||||
|
WM=$XDG_SESSION_TYPE
|
||||||
|
KERNEL=$(uname -r)
|
||||||
|
|
||||||
|
##########SIMPLELOCAL####################
|
||||||
|
|
||||||
|
# Construire le JSON
|
||||||
|
json_data=$(jq -n \
|
||||||
|
--arg host "$HOSTNAME" \
|
||||||
|
--arg cpu "$CPU" \
|
||||||
|
--arg cpu_id "$CPU_ID" \
|
||||||
|
--arg mem "$MEM" \
|
||||||
|
--arg ram_size "$RAM_SIZE" \
|
||||||
|
--arg ram_gen "$RAM_GEN" \
|
||||||
|
--arg sizes "$SIZES" \
|
||||||
|
--arg mb_serial "$MB_SERIAL" \
|
||||||
|
--arg cpu_freq_min "$CPU_FREQUENCY_MIN" \
|
||||||
|
--arg cpu_freq_cur "$CPU_FREQUENCY_CUR" \
|
||||||
|
--arg cpu_freq_max "$CPU_FREQUENCY_MAX" \
|
||||||
|
--arg gpu_model "$GPU_MODEL" \
|
||||||
|
--arg chassis_serial "$CHASSIS_SERIAL" \
|
||||||
|
--arg cpu_cores_nb "$CPU_CORES_NUMBER" \
|
||||||
|
--arg cpu_threads_nb "$CPU_THREADS_NUMBER" \
|
||||||
|
--arg ram_number "$RAM_NUMBER" \
|
||||||
|
--arg ram_slots_nb "$RAM_SLOTS_NUMBER" \
|
||||||
|
--arg os "$OS" \
|
||||||
|
--arg arch "$ARCH" \
|
||||||
|
--arg desktop "$DESKTOP" \
|
||||||
|
--arg wm "$WM" \
|
||||||
|
--arg kernel "$KERNEL" \
|
||||||
|
'{
|
||||||
|
HARDWARE: {
|
||||||
|
hostname:$host,
|
||||||
|
cpu:$cpu,
|
||||||
|
cpu_id:$cpu_id,
|
||||||
|
memory_mb:$mem,
|
||||||
|
ram_size:$ram_size,
|
||||||
|
ram_gen: $ram_gen,
|
||||||
|
sizes:$sizes,
|
||||||
|
mb_serial:$mb_serial,
|
||||||
|
cpu_freq_min:$cpu_freq_min,
|
||||||
|
cpu_freq_cur:$cpu_freq_cur,
|
||||||
|
cpu_freq_max:$cpu_freq_max,
|
||||||
|
gpu_model:$gpu_model,
|
||||||
|
chassis_serial:$chassis_serial,
|
||||||
|
cpu_cores_nb:$cpu_cores_nb,
|
||||||
|
cpu_threads_nb:$cpu_threads_nb,
|
||||||
|
ram_number:$ram_number,
|
||||||
|
ram_slots_nb:$ram_slots_nb
|
||||||
|
},
|
||||||
|
SOFTWARE: {
|
||||||
|
os:$os,
|
||||||
|
arch:$arch,
|
||||||
|
desktop:$desktop,
|
||||||
|
wm:$wm,
|
||||||
|
kernel:$kernel
|
||||||
|
}
|
||||||
|
}')
|
||||||
|
|
||||||
|
echo $json_data
|
||||||
|
|
||||||
|
|
||||||
|
curl -X POST http://localhost:8000/endpoint \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d "$json_data"
|
||||||
|
|
||||||
|
########################################
|
||||||
|
|
||||||
# Affichage du texte de démarrage
|
# Affichage du texte de démarrage
|
||||||
|
|
||||||
@ -45,7 +131,7 @@ COMMANDES=(
|
|||||||
[lsusb.cmd]="lsusb"
|
[lsusb.cmd]="lsusb"
|
||||||
[apt.cmd]="apt list --installed"
|
[apt.cmd]="apt list --installed"
|
||||||
[systemd-analyze.cmd]="systemd-analyze"
|
[systemd-analyze.cmd]="systemd-analyze"
|
||||||
[systemd-blame.cmd]="systemd-analyze blame | head -n 10"
|
[systemd-blame.cmd]="systemd-analyze blame"
|
||||||
[lscpu.cmd]="lscpu"
|
[lscpu.cmd]="lscpu"
|
||||||
[inxi.cmd]="inxi"
|
[inxi.cmd]="inxi"
|
||||||
[lsmem.cmd]="lsmem"
|
[lsmem.cmd]="lsmem"
|
||||||
@ -98,13 +184,22 @@ echo "values: ${PARTITIONS_BY_DISK[@]}"
|
|||||||
hardware() {
|
hardware() {
|
||||||
echo " "
|
echo " "
|
||||||
echo "[HARDWARE]"
|
echo "[HARDWARE]"
|
||||||
echo "CPU=$(lscpu -eMODELNAME |tail -n1)"
|
echo "CPU=$CPU"
|
||||||
echo "CPU_ID=$(sudo dmidecode -t processor |grep ID |cut -d: -f2)"
|
echo "CPU_ID=$CPU_ID"
|
||||||
RAM_SIZE=$(lsmem |grep "Mémoire partagée" |cut -d: -f2 |sed 's/\ //g')
|
|
||||||
RAM_GEN=$(sudo dmidecode -t memory |grep Type: |grep -v Unknown |tail -n1 |cut -d: -f2 |sed 's/\ //')
|
|
||||||
echo "RAM=$RAM_SIZE $RAM_GEN"
|
echo "RAM=$RAM_SIZE $RAM_GEN"
|
||||||
echo "RAM_SIZE=$RAM_SIZE"
|
echo "RAM_SIZE=$RAM_SIZE"
|
||||||
echo "RAM_GEN=$RAM_GEN"
|
echo "RAM_GEN=$RAM_GEN"
|
||||||
|
echo "SIZES=$SIZES"
|
||||||
|
echo "MB_SERIAL=$MB_SERIAL"
|
||||||
|
echo "CPU_FREQUENCY_MIN=$CPU_FREQUENCY_MIN"
|
||||||
|
echo "CPU_FREQUENCY_CUR=$CPU_FREQUENCY_CUR"
|
||||||
|
echo "CPU_FREQUENCY_MAX=$CPU_FREQUENCY_MAX"
|
||||||
|
echo "GPU_MODEL=$GPU_MODEL"
|
||||||
|
echo "CHASSIS_SERIAL=$CHASSIS_SERIAL"
|
||||||
|
echo "CPU_CORES_NUMBER=$CPU_CORES_NUMBER"
|
||||||
|
echo "CPU_THREADS_NUMBER=$CPU_THREADS_NUMBER"
|
||||||
|
echo "RAM_NUMBER=$RAM_NUMBER"
|
||||||
|
echo "RAM_SLOTS_NUMBER=$RAM_SLOTS_NUMBER"
|
||||||
|
|
||||||
sizes=$(lsblk -dnb |grep -v loop |grep -v boot |tr -s " " |cut -d \ -f4)
|
sizes=$(lsblk -dnb |grep -v loop |grep -v boot |tr -s " " |cut -d \ -f4)
|
||||||
STOCKAGE_TOTAL=0
|
STOCKAGE_TOTAL=0
|
||||||
@ -131,3 +226,4 @@ software
|
|||||||
echo " "
|
echo " "
|
||||||
echo "Le fichier summary.txt contient les infos hardware et software du système"
|
echo "Le fichier summary.txt contient les infos hardware et software du système"
|
||||||
echo "À bientôt ;)"
|
echo "À bientôt ;)"
|
||||||
|
|
||||||
|
|||||||
@ -3,12 +3,20 @@ import configparser
|
|||||||
import requests
|
import requests
|
||||||
class ordinateur():
|
class ordinateur():
|
||||||
cpu = ""
|
cpu = ""
|
||||||
cpu_freq=" "
|
cpu_freq_min = ""
|
||||||
[...]
|
cpu_freq_cur = ""
|
||||||
|
cpu_freq_max = ""
|
||||||
cpu_id = ""
|
cpu_id = ""
|
||||||
cpu_serial=" "
|
mb_serial = ""
|
||||||
ram = ""
|
ram = ""
|
||||||
ram_gen = ""
|
ram_gen = ""
|
||||||
|
sizes = ""
|
||||||
|
gpu_model = ""
|
||||||
|
chassis_serial = ""
|
||||||
|
cpu_cores_nb = ""
|
||||||
|
cpu_threads_nb = ""
|
||||||
|
ram_number = ""
|
||||||
|
ram_slots_nb = ""
|
||||||
stockage_total = ""
|
stockage_total = ""
|
||||||
|
|
||||||
os = ""
|
os = ""
|
||||||
@ -17,38 +25,55 @@ class ordinateur():
|
|||||||
wm = ""
|
wm = ""
|
||||||
kernel = ""
|
kernel = ""
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def reload(self):
|
def reload(self):
|
||||||
r = requests.get("http://localhost:8000/summary.txt")
|
r = requests.get("http://localhost:8000/summary.txt")
|
||||||
r.raise_for_status()
|
r.raise_for_status()
|
||||||
|
print(type(r.content.decode("utf-8")))
|
||||||
|
|
||||||
sum=configparser.ConfigParser()
|
sum=configparser.ConfigParser()
|
||||||
sum.read_string(r.content.decode("utf-8"))
|
sum.read_string(r.content.decode("utf-8"))
|
||||||
#sum.read("/opt/grabber/summary.txt")
|
#sum.read("/opt/grabber/summary.txt")
|
||||||
|
|
||||||
if "CPU" in sum['HARDWARE']:
|
if "CPU" in sum['HARDWARE']:
|
||||||
self.cpu = sum['HARDWARE']['CPU']
|
self.cpu = sum['HARDWARE']['CPU']
|
||||||
|
|
||||||
if "CPU_SERIAL" in sum['HARDWARE']:
|
if "CPU_SERIAL" in sum['HARDWARE']:
|
||||||
self.cpu_serial = sum['HARDWARE']['CPU_SERIAL']
|
self.cpu_serial = sum['HARDWARE']['CPU_SERIAL']
|
||||||
|
|
||||||
if "CPU_FREQ" in sum['HARDWARE']:
|
if "CPU_FREQ" in sum['HARDWARE']:
|
||||||
self.cpu_freq = sum['HARDWARE']['CPU_FREQ']
|
self.cpu_freq = sum['HARDWARE']['CPU_FREQ']
|
||||||
|
|
||||||
if "CPU_ID" in sum['HARDWARE']:
|
if "CPU_ID" in sum['HARDWARE']:
|
||||||
self.cpu_id = sum['HARDWARE']['CPU_ID']
|
self.cpu_id = sum['HARDWARE']['CPU_ID']
|
||||||
|
|
||||||
if "RAM" in sum['HARDWARE']:
|
if "RAM" in sum['HARDWARE']:
|
||||||
self.ram = sum['HARDWARE']['RAM']
|
self.ram = sum['HARDWARE']['RAM']
|
||||||
|
|
||||||
if "RAM_GEN" in sum['HARDWARE']:
|
if "RAM_GEN" in sum['HARDWARE']:
|
||||||
self.ram_gen = sum['HARDWARE']['RAM_GEN']
|
self.ram_gen = sum['HARDWARE']['RAM_GEN']
|
||||||
|
|
||||||
if "STOCKAGE_TOTAL" in sum['HARDWARE']:
|
if "STOCKAGE_TOTAL" in sum['HARDWARE']:
|
||||||
self.stockage_total = sum['HARDWARE']['STOCKAGE_TOTAL']
|
self.stockage_total = sum['HARDWARE']['STOCKAGE_TOTAL']
|
||||||
|
|
||||||
if "OS" in sum['SOFTWARE']:
|
if "OS" in sum['SOFTWARE']:
|
||||||
self.os = sum['SOFTWARE']['OS']
|
self.os = sum['SOFTWARE']['OS']
|
||||||
|
|
||||||
if "ARCH" in sum['SOFTWARE']:
|
if "ARCH" in sum['SOFTWARE']:
|
||||||
self.arch = sum['SOFTWARE']['ARCH']
|
self.arch = sum['SOFTWARE']['ARCH']
|
||||||
|
|
||||||
if "DESKTOP" in sum['SOFTWARE']:
|
if "DESKTOP" in sum['SOFTWARE']:
|
||||||
self.desktop = sum['SOFTWARE']['DESKTOP']
|
self.desktop = sum['SOFTWARE']['DESKTOP']
|
||||||
|
|
||||||
if "WM" in sum['SOFTWARE']:
|
if "WM" in sum['SOFTWARE']:
|
||||||
self.wm = sum['SOFTWARE']['WM']
|
self.wm = sum['SOFTWARE']['WM']
|
||||||
|
|
||||||
if "KERNEL" in sum['SOFTWARE']:
|
if "KERNEL" in sum['SOFTWARE']:
|
||||||
self.kernel = sum['SOFTWARE']['KERNEL']
|
self.kernel = sum['SOFTWARE']['KERNEL']
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.reload()
|
||||||
|
|
||||||
def shutdown():
|
def shutdown():
|
||||||
return
|
return
|
||||||
|
|||||||
10
requirements.txt
Normal file
10
requirements.txt
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
annotated-doc==0.0.4
|
||||||
|
annotated-types==0.7.0
|
||||||
|
anyio==4.12.1
|
||||||
|
fastapi==0.128.0
|
||||||
|
idna==3.11
|
||||||
|
pydantic==2.12.5
|
||||||
|
pydantic_core==2.41.5
|
||||||
|
starlette==0.50.0
|
||||||
|
typing-inspection==0.4.2
|
||||||
|
typing_extensions==4.15.0
|
||||||
Loading…
x
Reference in New Issue
Block a user