linux system info

Linux specific forum
User avatar
mk-soft
Always Here
Always Here
Posts: 5313
Joined: Fri May 12, 2006 6:51 pm
Location: Germany

linux system info

Post by mk-soft »

small collection of system info under linux

Code: Select all

;-TOP by mk-soft, v1.01.1, 17.02.2024

Macro AddElementValue(_List_, _Value_)
  AddElement(_List_) : _List_ = _Value_
EndMacro

Procedure run_pb_systeminfo(List Result.s())
  Protected text
  AddElementValue(Result(), "PB System Info:")
  AddElementValue(Result(), "- Computer Name: " + ComputerName())
  AddElementValue(Result(), "- User Name: " + UserName())
  AddElementValue(Result(), "- CPU Name: " + CPUName())
  AddElementValue(Result(), "- Count CPUs: " + CountCPUs(#PB_System_CPUs))
  AddElementValue(Result(), "- Count Process CPUs: " + CountCPUs(#PB_System_ProcessCPUs))
  AddElementValue(Result(), "- Memory Total Pysical: " + MemoryStatus(#PB_System_TotalPhysical))
  AddElementValue(Result(), "- Memory Free Pysical: " + MemoryStatus(#PB_System_FreePhysical))
  AddElementValue(Result(), "- Memory Total Virtual: " + MemoryStatus(#PB_System_TotalVirtual))
  AddElementValue(Result(), "- Memory Free Virtual: " + MemoryStatus(#PB_System_FreeVirtual))
  AddElementValue(Result(), "- Memory Total Swap: " + MemoryStatus(#PB_System_TotalSwap))
  AddElementValue(Result(), "- Memory Free Swap: " + MemoryStatus(#PB_System_FreeSwap))
  AddElement(Result())
EndProcedure

Procedure run_uname(List Result.s())
  Protected r1, program.s, param.s, text.s
  
  program = "uname"
  param = "-a"
  
  AddElementValue(Result(), "Linux Kernel Version:")
  AddElementValue(Result(), "* Program: " + program + " " + param)
  r1 = RunProgram(program, param, "", #PB_Program_Open | #PB_Program_Read)
  If r1
    While ProgramRunning(r1)
      If AvailableProgramOutput(r1)
        text.s = ReadProgramString(r1)
        AddElementValue(Result(), "- " +Trim(text))
      EndIf
    Wend
    AddElement(Result())
    If ProgramExitCode(r1)
      AddElementValue(Result(), "- Exitcode: " + Str(ProgramExitCode(r1)))
      AddElement(Result())
    EndIf
    CloseProgram(r1)
  Else
    AddElementValue(Result(), "- Error Run: " + program + " " + param)
  EndIf
EndProcedure

Procedure run_hostnamectl(List Result.s())
  Protected r1, program.s, param.s, text.s
  
  program = "hostnamectl"
  param = ""
  
  AddElementValue(Result(), "Hostname Control;")
  AddElementValue(Result(), "* Program: " + program + " " + param)
  r1 = RunProgram(program, param, "", #PB_Program_Open | #PB_Program_Read)
  If r1
    While ProgramRunning(r1)
      If AvailableProgramOutput(r1)
        text.s = ReadProgramString(r1)
        AddElementValue(Result(), "- " + Trim(text))
      EndIf
    Wend
    AddElement(Result())
    If ProgramExitCode(r1)
      AddElementValue(Result(), "- Exitcode: " + Str(ProgramExitCode(r1)))
      AddElement(Result())
    EndIf
    CloseProgram(r1)
  Else
    AddElementValue(Result(), "- Error Run: " + program + " " + param)
  EndIf
EndProcedure

Procedure run_df(List Result.s())
  Protected r1, program.s, param.s, text.s
  
  program = "df"
  param = ""
  
  AddElementValue(Result(), "Disk Free:")
  AddElementValue(Result(), "* Program: " + program + " " + param)
  r1 = RunProgram(program, param, "", #PB_Program_Open | #PB_Program_Read)
  If r1
    While ProgramRunning(r1)
      If AvailableProgramOutput(r1)
        text.s = ReadProgramString(r1)
        AddElementValue(Result(), "- " + Trim(text))
      EndIf
    Wend
    AddElement(Result())
    If ProgramExitCode(r1)
      AddElementValue(Result(), "- Exitcode: " + Str(ProgramExitCode(r1)))
      AddElement(Result())
    EndIf
    CloseProgram(r1)
  Else
    AddElementValue(Result(), "- Error Run: " + program + " " + param)
  EndIf
EndProcedure

Procedure run_lscput(List Result.s())
  Protected r1, program.s, param.s, text.s
  
  program = "lscpu"
  param = ""
  
  AddElementValue(Result(), "CPU info and Virtualization support:")
  AddElementValue(Result(), "* Program: " + program + " " + param)
  r1 = RunProgram(program, param, "", #PB_Program_Open | #PB_Program_Read)
  If r1
    While ProgramRunning(r1)
      If AvailableProgramOutput(r1)
        text.s = ReadProgramString(r1)
        AddElementValue(Result(), "- " + Trim(text))
      EndIf
    Wend
    AddElement(Result())
    If ProgramExitCode(r1)
      AddElementValue(Result(), "- Exitcode: " + Str(ProgramExitCode(r1)))
      AddElement(Result())
    EndIf
    CloseProgram(r1)
  Else
    AddElementValue(Result(), "- Error Run: " + program + " " + param)
  EndIf
EndProcedure

Procedure run_free(List Result.s())
  Protected r1, program.s, param.s, text.s
  
  program = "free"
  param = "-k"
  
  AddElementValue(Result(), "System RAM details (kb):")
  AddElementValue(Result(), "* Program: " + program + " " + param)
  r1 = RunProgram(program, param, "", #PB_Program_Open | #PB_Program_Read)
  If r1
    While ProgramRunning(r1)
      If AvailableProgramOutput(r1)
        text.s = ReadProgramString(r1)
        AddElementValue(Result(), "- " + Trim(text))
      EndIf
    Wend
    AddElement(Result())
    If ProgramExitCode(r1)
      AddElementValue(Result(), "- Exitcode: " + Str(ProgramExitCode(r1)))
      AddElement(Result())
    EndIf
    CloseProgram(r1)
  Else
    AddElementValue(Result(), "- Error Run: " + program + " " + param)
  EndIf
EndProcedure


Procedure run_lsblk(List Result.s())
  Protected r1, program.s, param.s, text.s
  
  program = "lsblk"
  param = ""
  
  AddElementValue(Result(), "Hard disk and partition distribution:")
  AddElementValue(Result(), "* Program: " + program + " " + param)
  r1 = RunProgram(program, param, "", #PB_Program_Open | #PB_Program_Read)
  If r1
    While ProgramRunning(r1)
      If AvailableProgramOutput(r1)
        text.s = ReadProgramString(r1)
        AddElementValue(Result(), "- " + Trim(text))
      EndIf
    Wend
    AddElement(Result())
    If ProgramExitCode(r1)
      AddElementValue(Result(), "- Exitcode: " + Str(ProgramExitCode(r1)))
      AddElement(Result())
    EndIf
    CloseProgram(r1)
  Else
    AddElementValue(Result(), "- Error Run: " + program + " " + param)
  EndIf
EndProcedure

;-Test

CompilerIf #PB_Compiler_IsMainFile
  
  Global NewList SystemInfo.s()
  
  run_pb_systeminfo(SystemInfo())
  run_uname(SystemInfo())
  run_hostnamectl(SystemInfo())
  run_lscput(SystemInfo())
  run_free(SystemInfo())
  run_df(SystemInfo())
  run_lsblk(SystemInfo())
  
  ForEach SystemInfo()
    Debug SystemInfo()
  Next
  
CompilerEndIf
My Projects ThreadToGUI / OOP-BaseClass / EventDesigner V3
PB v3.30 / v5.75 - OS Mac Mini OSX 10.xx - VM Window Pro / Linux Ubuntu
Downloads on my Webspace / OneDrive