Porkchop er en enkel HTTP-basert systeminformasjon serveren skrevet i Python. & Nbsp; Du skriver plugins for det og det reagerer med data basert på din forespørsel.
Her er et eksempel:
scott @ beatbox: ~% curl http: // localhost: 5000 / cpuinfo
/ Cpuinfo / processor2 / FPU ja
/ Cpuinfo / processor2 / f00f_bug nei
/ Cpuinfo / processor2 / cache_alignment 64
/ Cpuinfo / processor2 / vendor_id AuthenticAMD
/ cpuinfo / processor2 / flagg FPU
/ Cpuinfo / processor2 / BogoMips 6384
/ Cpuinfo / processor2 / hlt_bug nei
/ Cpuinfo / processor2 / apicid 2
/ Cpuinfo / processor2 / fpu_exception ja
/ Cpuinfo / processor2 / stepping 3
/ Cpuinfo / processor2 / wp ja
/ Cpuinfo / processor2 / søsken 4
/ Cpuinfo / processor2 / modell 4
/ Cpuinfo / processor2 / coma_bug nei
/ Cpuinfo / processor2 / fdiv_bug nei
/ Cpuinfo / processor3 / FPU ja
/ Cpuinfo / processor3 / f00f_bug nei
/ Cpuinfo / processor3 / cache_alignment 64
/ Cpuinfo / processor3 / vendor_id AuthenticAMD
/ cpuinfo / processor3 / flagg FPU
/ Cpuinfo / processor3 / BogoMips 6384
/ Cpuinfo / processor3 / hlt_bug nei
/ Cpuinfo / processor3 / apicid 3
/ Cpuinfo / processor3 / fpu_exception ja
/ Cpuinfo / processor3 / stepping 3
/ Cpuinfo / processor3 / wp ja
/ Cpuinfo / processor3 / søsken 4
/ Cpuinfo / processor3 / modell 4
/ Cpuinfo / processor3 / coma_bug nei
/ Cpuinfo / processor3 / fdiv_bug nei
[Klipp]
/ Tid 1311387215
scott @ beatbox: ~%
Det kan også svare med JSON via .json filtype eller sette Godta: application / json spissen.
scott @ beatbox: ~% curl http: // localhost: 5000 / cpuinfo.json
{"Cpuinfo": {"processor2": {"FPU": "ja", "f00f_bug": "nei", "cache_alignment": "64", "vendor_id": "AuthenticAMD", "flagg": "FPU" , "BogoMips": "6384", "hlt_bug": "nei", "apicid": "2", "fpu_exception": "ja", "stepping": "3", "wp": "ja", " søsken ":" 4 "," modellen ":" 4 "," coma_bug ":" nei "," fdiv_bug ":" nei "}," processor3 ": {" FPU ":" ja "," f00f_bug ":" nei "," cache_alignment ":" 64 "," vendor_id ":" AuthenticAMD "," flagg ":" FPU "," Bogomips ":" 6384 "," hlt_bug ":" nei "," apicid ":" 3 " "fpu_exception": "ja", "stepping": "3", "wp": "ja", "søsken": "4", "modellen": "4", "coma_bug": "nei", " fdiv_bug ":" nei "}," processor0 ": {" FPU ":" ja "," f00f_bug ":" nei "," cache_alignment ":" 64 "," vendor_id ":" AuthenticAMD "," flagg ":" FPU "," BogoMips ":" 6382 "," hlt_bug ":" nei "," apicid ":" 0 "," fpu_exception ":" ja "," stepping ":" 3 "," wp ":" ja " , "søsken": "4", "modellen": "4", "coma_bug": "nei", "fdiv_bug": "nei"}, "processor1": {"FPU": "ja", "f00f_bug" : "nei", "cache_alignment": "64", "vendor_id": "AuthenticAMD", "flagg": "FPU", "Bogomips": "6384", "hlt_bug": "nei", "apicid": " 1 "," fpu_exception ":" ja "," stepping ":" 3 "," wp ":" ja "," søsken ":" 4 "," modellen ":" 4 "," coma_bug ":" nei " "fdiv_bug": "nei"}}, "tid": "1311389934"}
scott @ beatbox: ~%
Installasjon
PIP installere porkchop
eller
python setup.py installere
Skrive Plugins
Det er ganske lett å skrive en ny plugin. De er bare Python-moduler med noen felles attributter:
- En plugin må underklasse porkchop.plugin.PorkchopPlugin.
- Den plugin klasse må være med suffikset Plugin. Dens faktiske filnavnet i plugin katalogen bør også matche prefiks. For eksempel, ville FooPlugin være i filen foo.py
- Den plugin klasse må inneholde en metode som kalles get_data som returnerer en ordbok av informasjonen som skal vises.
Som standard, vil en plugin get_data metode bare kalles hvis dataene er mer enn 60 sekunder gammel. Dette kan endres på en per-plugin basis ved å sette self.refresh i klassens ___init___ metode.
. Disse plugins kan plasseres i en katalog du velger, og lastet ved å sende d muligheten til Porkchop
Krav :
- Python
Kommentarer ikke funnet