Upload files to "/"
This commit is contained in:
59
Program.cs
Normal file
59
Program.cs
Normal file
@@ -0,0 +1,59 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
|
||||
class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
//int i = 0;
|
||||
SystemReader systemReader = new SystemReader();
|
||||
DriveInfo drive = new DriveInfo("/");
|
||||
Console.Clear();
|
||||
Console.WriteLine("TThop system stats by RozbitiOkno");
|
||||
int processCount = Directory.GetDirectories("/proc")
|
||||
.Count(dir => int.TryParse(Path.GetFileName(dir), out _));
|
||||
Console.WriteLine("\nProcesses: " + processCount);
|
||||
systemReader.getRam();
|
||||
Console.WriteLine("\n--- RAM usage --- --- Disk space ---");
|
||||
Console.WriteLine("Total RAM: " + systemReader._totalRam / 1048576 + " GB Total: " + drive.TotalSize / 1073741824 + " GB");
|
||||
Console.WriteLine("Availible RAM: " + systemReader._avaibleRam / 1048576 + " GB Free: " + drive.AvailableFreeSpace / 1073741824 + " GB");
|
||||
systemReader.getCpuLoad();
|
||||
Console.Write("\n--- CPU load ---");
|
||||
Console.WriteLine(" --- System uptime ---");
|
||||
systemReader._cpuLoad = Math.Round((systemReader._cpuLoad / systemReader.cpuCores) * 100);
|
||||
if (systemReader._cpuLoad >= 1) { Console.ForegroundColor = ConsoleColor.Green; }
|
||||
if (systemReader._cpuLoad >= 30) { Console.ForegroundColor = ConsoleColor.DarkGreen; }
|
||||
if (systemReader._cpuLoad >= 50) { Console.ForegroundColor = ConsoleColor.Yellow; }
|
||||
if (systemReader._cpuLoad >= 80) { Console.ForegroundColor = ConsoleColor.Red; }
|
||||
if (systemReader._cpuLoad >= 90) { Console.ForegroundColor = ConsoleColor.DarkRed; }
|
||||
Console.Write("CPU load: " + systemReader._cpuLoad + "%");
|
||||
Console.ResetColor();
|
||||
double uptimeSeconds = Math.Round(systemReader.getUptime());
|
||||
TimeSpan uptime = TimeSpan.FromSeconds(uptimeSeconds);
|
||||
Console.ResetColor();
|
||||
Console.Write(" " + uptime);
|
||||
systemReader.getCpuTemp();
|
||||
Console.WriteLine("\n\n--- CPU - temp ---");
|
||||
Console.Write("CPU temp: " + systemReader._cpuTemp + " °C");
|
||||
if (systemReader._cpuTemp == -1) { Console.WriteLine(" - cant get system data (not suported)"); }
|
||||
else { Console.WriteLine(""); }
|
||||
Thread.Sleep(1000);
|
||||
/* while (i < 3)
|
||||
{
|
||||
Console.Write(".");
|
||||
Thread.Sleep(1000);
|
||||
i++;
|
||||
}*/
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//double uptime = systemReader.getUptime();
|
||||
62
SystemReader.cs
Normal file
62
SystemReader.cs
Normal file
@@ -0,0 +1,62 @@
|
||||
class SystemReader
|
||||
{
|
||||
public int _avaibleRam;
|
||||
public int _totalRam;
|
||||
public int getRam()
|
||||
{
|
||||
foreach (var line in File.ReadLines("/proc/meminfo"))
|
||||
{
|
||||
if (line.StartsWith("MemTotal"))
|
||||
_totalRam = int.Parse(line.Split(' ', StringSplitOptions.RemoveEmptyEntries)[1]);
|
||||
|
||||
if (line.StartsWith("MemAvailable"))
|
||||
_avaibleRam = int.Parse(line.Split(' ', StringSplitOptions.RemoveEmptyEntries)[1]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public double _cpuLoad;
|
||||
public int cpuCores = Environment.ProcessorCount;
|
||||
|
||||
public double getCpuLoad()
|
||||
{
|
||||
if (File.Exists("/proc/loadavg"))
|
||||
{
|
||||
string loadStr = File.ReadAllText("/proc/loadavg");
|
||||
// první číslo = load za poslední 1 minutu
|
||||
_cpuLoad = double.Parse(loadStr.Split(' ')[0], System.Globalization.CultureInfo.InvariantCulture);
|
||||
}
|
||||
else
|
||||
{
|
||||
_cpuLoad = -1;
|
||||
}
|
||||
return _cpuLoad;
|
||||
}
|
||||
|
||||
|
||||
public int _cpuTemp;
|
||||
|
||||
public int getCpuTemp()
|
||||
{
|
||||
if (File.Exists("/sys/class/thermal/thermal_zone0/temp"))
|
||||
{
|
||||
string tempStr = File.ReadAllText("/sys/class/thermal/thermal_zone0/temp");
|
||||
_cpuTemp = int.Parse(tempStr) / 1000; // převod na °C
|
||||
}
|
||||
else
|
||||
{
|
||||
_cpuTemp = -1; // soubor neexistuje
|
||||
}
|
||||
return _cpuTemp;
|
||||
}
|
||||
|
||||
public double getUptime()
|
||||
{
|
||||
string uptime = File.ReadAllText("/proc/uptime").Split(' ')[0];
|
||||
return double.Parse(uptime, System.Globalization.CultureInfo.InvariantCulture);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
10
tthop.csproj
Normal file
10
tthop.csproj
Normal file
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
24
tthop.sln
Normal file
24
tthop.sln
Normal file
@@ -0,0 +1,24 @@
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.5.2.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "tthop", "tthop.csproj", "{E4CF627D-7793-BDE2-31FE-B505FB1918FB}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{E4CF627D-7793-BDE2-31FE-B505FB1918FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E4CF627D-7793-BDE2-31FE-B505FB1918FB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E4CF627D-7793-BDE2-31FE-B505FB1918FB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E4CF627D-7793-BDE2-31FE-B505FB1918FB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {22D1B5DE-443B-420F-8C57-A32B861E9CF5}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
Reference in New Issue
Block a user